Dificuldade com LOOP

Delphi

29/10/2003

Caros amigos, tenho um problema para resolver:

Eu tenho dois FOR rodando um dentro do outro, até ai tudo bem, o problema é que eu tenho que interromper o processamento do segundo FOR sem interromper o processamento do 1º, alguem teria uma sugestão?


Henry Lima

Henry Lima

Curtidas 0

Respostas

Sandrost

Sandrost

29/10/2003

Olá Henry, tente utilizar o comando ´break´, veja abaixo um exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
i, x: Integer;
begin
for i:=0 to 100 do begin
for x:=0 to 100 do begin
Label1.Caption:=trim(inttostr(i))+´/´+trim(inttostr(x));
Label1.Refresh;
if x=25 then
break;
end;
end;
end;

Quando o valor de x for igual a 25 será interrompido o for interno passando a execução para o for externo.

Espero ter ajudado.

Sandro S. :D


GOSTEI 0
Beppe

Beppe

29/10/2003

O Delphi não fornece uma saída prática para isto. :x Mas tem dois jeitos: usando goto, ou uma variável.

Usando goto:
label Loop1;
var
  I, J: Integer;
begin
  for I := 0 to 10 do
  begin
    ...
    for J := 0 to 10 do
    begin
      ...
      if { condição para acabar os dois loops } then 
        goto Loop1;
      ...
    end;
    ...
  end;
Loop1:
  // 
end;


Criando uma variável:
var
  I, J: Integer;
  Terminou: Boolean;
begin
  Terminou := False;
  for I := 0 to 10 do
  begin
    ...
    for J := 0 to 10 do
    begin
      ...
      if { condição para acabar os dois loops } then 
      begin
        Terminou := True;
        Break;
      end;
      ...
    end;
    if Terminou then Break;
    ...
  end;
Loop1:
  // 
end;


Ataliba


GOSTEI 0
POSTAR