Cassic

Estrutura de Repetição com Variável de Controle "for... to(downto)... do..."

Autor: Tadeu Pereira


  A instrução for... to... do... incrementa em 1 a variável de controle informada, e executa o bloco de comandos até que a variável atinja o valor final desejado, dessa maneira instrução iniciará com a quantidade de loop já definido. O subcomando downto... realiza o decremento da variável de controle.

  Sintaxe:
  for variável := valor inicial to (downto) {valor final} do
   {bloco de comandos}

  begin
   { ... comandos iniciais ... }
   for numero := 1 to 10 do
    { ... bloco de comandos ... }
   for numero := 10 downto 1 do
    { ... bloco de comandos ... }
   { ... 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
  ShowMessage('Comando "for..." com o subcomando "to..."');
06
  for x := 0 to 10 do
07
   begin
08
   ShowMessage('O valor atual de x é ' + IntToStr(x));
09
   end;
10
  MessageDlg('Valor final de x com o "for...to..." é ' +
11
   IntToStr(x), mtInformation, [mbOk], 0);
12
 
13
  ShowMessage('Comando "for..." com o subcomando "downto..."');
14
  for x := 10 downto 0 do
15
   begin
16
   ShowMessage('O valor atual de x é ' + IntToStr(x));
17
   end;
18
  MessageDlg('Valor final de x com o "for...downto..." é ' +
19
   IntToStr(x), mtInformation, [mbOk], 0);
20
end;

  Na primeira parte desse exemplo (linhas 05 à 11) é mostrado a funcionalidade da instrução for com o subcomando to, a ultima execução da linha 08 mostra a mensagem "O valor atual de x é 10", em seguida mostra a mensagem "Valor final de x com o 'for...to...' é 11", dessa maneira notamos o incremento é feito no final da instrução. A segunda parte desse exemplo (linhas 13 à 19) é semelhante a anterior, o que a difere nesse caso é a contagem inversa, a ultima execução da linha 16 mostrará o valor para x igual a 0 e a linha 18 mostra –1 com o valor final de x.