[DELPHI] ESTRUTURAS DE REPETIÇÃO

As estruturas de repetição no Delphi, também conhecidas como loops, são indispensáveis para o processo de desenvolvimento, podem existir dois tipos de laços de repetição:

Laços finitos: neste tipo de laço se conhece previamente o número de repetições que serão executadas; e
Laços infinitos: neste tipo de laço não se conhece previamente o número de repetições que serão executadas. São também chamados condicionais pelo fato de encerrarem a sua execução mediante uma determinada condição.

Vamos conhecer as estruturas de repetição: 

for
while…do
repeat…until

for

O comando for executa repetitivamente enquanto é atribuído um valor incremental a uma variável de controle, que chamamos de contador do for. O loop só é interrompido quando o contador atinge o seu limite.

Exemplo:
for variável := <início> to/downto <fim> do
begin
    <instrução a ser repetida>;
    <…>
end;

variável = contador do for, qualquer valor inteiro.
<início> = valor a partir do qual o loop deve iniciar, qualquer valor inteiro.
<fim> = valor limite para o término do loop, qualquer valor inteiro (>= ao <início> quando usado o to e <= <início> quando usado o downto).

//soma uma variável até 100
procedure Somar;
var
  _contador, _soma: Integer;
begin
  _soma := 0;
  for _contador := 1 to 100 do
  begin
    Inc(_soma);
  end;
end;

No exemplo acima, temos duas variáveis: _contador e _soma, _contador será responsável por fazer o controle do loop, ele será iniciado por 1 e irá interromper o laço quando chegar em 100.
A cada loop executado a variável _soma será incrementada em 1.
Mesmo tenho só uma instrução no exemplo acima, é sempre bom usar o begin...end para controle do loop.

while…do

Esta estrutura de repetição se caracteriza por efetuar um teste lógico no início do loop, verificando se é permitido executar o trecho de instruções abaixo dela.

A estrutura while…do tem o seu funcionamento controlado por condição. Desta forma, poderá executar um determinado conjunto de instruções enquanto a condição verificada permanecer verdadeira, no momento em que a condição se torna falsa, o processamento da rotina é desviado para fora do loop.

Exemplo:
while <condição> do
begin
    <instrução a ser repetida>;
    <…>
end;

Veja como ficaria o mesmo exemplo usado no for, mas aplicando o while…do:

//soma uma variável até 100
procedure Somar;
var
  _soma: Integer;
begin
  _soma := 0;
  while _soma < 100 do
  begin
    Inc(_soma);
  end;
end;

Usando o while…do, não temos a necessidade de utilizar uma variável como Contador, pois antes de iniciar o loop, um teste lógico é efetuado, ou seja, o processo só será realizado enquanto _soma < 100. Assim que a variável _soma atingir o valor 100, o loop será interrompido.

repeat…until

Esta estrutura é parecida com a estrutura while…do, só que no repeat…until, o teste lógico é efetuado no final do loop, desta forma, repeat…until irá processar um conjunto de instruções, no mínimo uma vez ou até que a condição se torne verdadeira. 

Exemplo:
repeat
  <instrução a ser repetida>;
  <instrução a ser repetida>;
until (condição);

//soma uma variável até 100
procedure Somar;
var
  _soma: Integer;
begin
  _soma := 0;
  repeat
    Inc(_soma);
  until (_soma < 100);
end;

Usando repeat…until, não temos a necessidade de utilizar uma variável como Contador, pois o controle é feito pelo teste lógico ao final do loop, outra diferença é a ausência do begin…end para controlar o bloco dentro do loop.

Gostou? Deixe seu comentário... Convido você a seguir meu blog, sua presença é bem vinda!【ツ】

Um comentário: