Essa instrução executa um bloco de comandos enquanto a condição booleana for verdadeira. Se a condição antes de while... do... já começar falsa o bloco de comandos não será executado nenhuma vez.
Sintaxe:
while condição do {bloco de comandos};
begin
{ ... comandos iniciais ... }
while numero < 10 do
{ ... bloco de comandos ... }
{ ... comandos finais ... }
end;
Abra um novo projeto, insira no formulário um Button:
|
|
||||||||||||||||||||

Entre com o código em negrito no evento OnClick do componente BtnContar:
01 |
procedure TForm1.BtnContarClick(Sender: TObject); |
02 |
var |
03 |
x: Integer; |
04 |
begin |
05 |
x := 0; |
06 |
while ( x < 10 ) do |
07 |
begin |
08 |
Inc( x ); |
09 |
ShowMessage('O valor atual de x é ' + IntToStr(x)); |
10 |
end; |
11 |
MessageDlg('Valor final de x é ' + IntToStr(x), |
12 |
mtInformation, [mbOk], 0); |
13 |
end; |
A função Inc(x) captura o valor da variável x incrementa de 1 e coloca esse valor de volta em x. Para entender melhor imagine que x é igual a 3, após a função x será igual a x mais 1, escrevendo de outra maneira x ? x + 1, logo x ? 3 + 1 ou x ? 4.
Nesse exemplo a variável x está sendo usada para controle da estrutura de repetição que inicia na linha 06 e termina na linha 10.
O bloco de comandos será executado enquanto x for menor que 10. Quando x atingir 10 a linha 09 mostrará a mensagem "O valor atual de x é 10" e só então vai para a linha 11 e mostra a mensagem "Valor final de x é 10", logo o x com o valor 10 aparecerá duas vezes, uma dentro do loop e outra quando o loop é abandonado.
Observação |
Embora estejamos utilizando a variável x para controlar o loop, note que a instrução é mantida pela condição lógica ( x < 10 ) da linha 06, enquanto essa condição for verdadeira o bloco de comandos será executado. |