Estrutura de Repetição com Teste Lógico no Fim do Looping "repeat... until..."
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.. |