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!【ツ】
Bacana a explicação
ResponderExcluir