Cassic

Estrutura de Repetição com Teste Lógico no Fim do Looping "repeat... until..."

Autor: Tadeu Pereira


  A instrução repeat... until... é semelhante a instrução while... do..., mas nesse caso o bloco de comandos é executado pelo menos uma vez, pois o teste é feito no final da instrução, e continuará a ser executado até que a condição no subcomando until... atinja o valor verdadeiro.

  Sintaxe:
  repeat {bloco de comandos} until condição;

  begin
   { ... comandos iniciais ... }
   repeat
    { ... bloco de comandos ... }
   until numero > 10
   { ... comandos finais ... }
  end;

  Utilizando o projeto anterior, altere apenas o código existente no evento OnClick do componente BtnContar:

01
procedure TForm1.BtnContarClick(Sender: TObject);
02
var
03
  x: Integer;
04
begin
05
  x := 0;
06
  repeat
07
   Inc( x );
08
   ShowMessage('O valor atual de x é ' + IntToStr(x));
09
  until ( x > 10 );
10
  MessageDlg('Valor Final de x é ' + IntToStr(x),
11
   mtInformation, [mbOk], 0);
12
end;

  O bloco de comandos ficará sendo repetido até x ser maior que 10, quando essa condição for atingida a estrutura de repetição será abandonada, desta maneira a ultima mensagem mostrada pela linha 08 será "O valor atual de x é 11", em seguida a linha 10 mostrará a mensagem "Valor final de x é 11".

  Uma peculiaridade dessa instrução é a inexistência das palavras reservadas begin e end para delimitar o bloco de comandos a ser repetido, isso é feito pelas palavras reservadas da própria instrução de repetição(repeat e until).

Observação
  Diferente da instrução anterior, nesse caso o bloco de comandos será executado enquanto a condição ( x > 10 ) da linha 09 for falsa..