08)Loops – Comandos de Repetição

Existem 3 comandos de repetição:

  • FOR
  • REPEAT … UNTIL
  • WHILE

O Comando ‘FOR’

O comando FOR é um comando que executa um trecho de código diversas vezes. O número de vezes é determinado por uma variável de controle — o contador. O Contador é uma variável, geralmente pertencente ao domínio dos números inteiros, que “conta” quantas vezes o laço de repetição já foi executado.

Sintaxe:

FOR <variavel_contadora> := <valor_inicial> TO <valor_final> DO
BEGIN
   {* trecho de código a ser repetido *}
END;

Ler-se-ia em português:

PARA <variavel_contadora> := <valor_inicial> ATÉ <valor_final> FAÇA
INÍCIO
   {* trecho de código a ser repetido *}
FIM;

Exemplo:

Program Exemplo_Comando_FOR;
Var contador: Integer;
Begin
   FOR contador := 0 TO 10 DO
   Begin
      Writeln('Execução: ', contador);
   End;
End.

OBS: O incremento da variável (a cada execução) é feito automaticamente pelo comando FOR.

O comando FOR também pode ser utilizado para decrementar o valor de uma variável. Desta forma, a contagem passa a ser regressiva ao invés de progressiva:

Program Outro_Exemplo_Comando_FOR;
Var contador: Integer;
Begin
   FOR contador := 10 DOWNTO 0 DO
   Begin
      Writeln('Execução: ', contador);
   End;
End.

Note que, neste caso, é utilizada a palavra-chave downto.como se fosse uma contagem regressiva

O comando ‘REPEAT’ … ‘UNTIL

O conjunto de comandos “REPEAT … UNTIL” é similar ao comando FOR, pois ele também cria um laço de execução que repete determinado trecho de código diversas vezes. A maior diferença está no fato de que ele executa o laço até que determinada condição tenha sido atingida.

Sintaxe:

REPEAT
   {* trecho de código a ser repetido *}
UNTIL <condição>;

Ler-se-ia em português:

REPITA
   {* trecho de código a ser repetido *}
ATÉ <condição_ser_verdadeira>;

É importante salientar que o conjunto de comandos REPEAT … UNTIL não exige, obrigatoriamente, uma variável contadora (apesar de isto não fazer muito sentido na prática). Decorrente disto, o programador deve, obrigatoriamente e por conta própria, inicializar o contador e incrementá-lo manualmente dentro do laço. Veja o exemplo.

Exemplo:

Program Exemplo_Comandos_REPEAT_UNTIL;
Var contador: Integer;
Begin
   contador := 0;   {* Inicialização *}
   REPEAT
      Writeln('Execução: ', contador);
      contador = contador + 1; {* Incremento *}
   UNTIL contador = 11;
End.

OBS: O incremento NÃO é feito automaticamente pelos comandos REPEAT…UNTIL.

O comando ‘WHILE’

O comando WHILE também serve para criar laços de execução. Ele funciona da mesma forma que os comandos “REPEAT…UNTIL”, com exceção de que o teste fica no início do laço. Desta forma, os comandos do laço são executados enquanto a condição é verdadeira. Se a condição, por algum motivo, não for verdadeira antes da primeira execução, o laço jamais é executado (o que não acontece com o REPEAT…UNTIIL).

Sintaxe:

WHILE <condição> DO
Begin
   {* trecho de código a ser repetido *}
END;

Ler-se-ia em português:

Enquanto <condição_for_verdadeira> faça
Início
   {* trecho de código a ser repetido *}
Fim;

Exemplo:

Program Exemplo_Comando_WHILE;
Var contador, numeroFinal: Integer;
Begin
write('Desejas contar até quanto? ');
readln(numeroFinal);
contador := 0; {* inicialização *}
WHILE contador < numeroFinal DO
Begin
   Writeln(contador);
   contador := Contador + 1;  {* incremento *}
End;
End.

2 Responses to 08)Loops – Comandos de Repetição

  1. geraldo diz:

    a linguagem e muito boa mais tem q ter gosto pla coisa assim como eu so ta complicado enteder

  2. Fabi Ramos diz:

    Estes comandos estão bem explicados.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: