Estruturas de repetição (loop ou laços) são essenciais e resolvem diversos problemas e situações em que necessitamos repetir alguma estrutura ou um bloco de código.
Dentre essas estruturas, temos o laço For, For-DownTo, For-in, While e o Repeat-until.-For
É nós quem determinamos o número de vezes que a repetição acontecerá. Sua estrutura é a seguinte:
for #contador# := #valorInicial# to #valorFinal# do
#faça_alguma_coisa#
O contador é um número inteiro, uma variável que será usada para proceder com a próxima contagem do loop.
Por exemlplo:
for i := 1 to 10 do
ShowMessage('O valor de i é ' + IntToStr(i));
Nesse caso, será mostrado uma mensagem contendo o valor de i de 1 até 10.
O valor de i é 1
O valor de i é 2
O valor de i é 3
...
O valor de i é 10
-For-downto
A diferença do laço for-downto é que ao invés de incrementar o contador, ele decrementa.
for i := 10 downto 10 do
ShowMessage('O valor de i é ' + IntToStr(i));
O valor de i é 10
O valor de i é 9
O valor de i é 8
...
O valor de i é 1
-For-in
O for-in nos permite trabalhar com cada elemento de uma coleção, por exemplo, cada letra de uma palavra.
var
Nome: string;
letra: char;
begin
Nome := 'Cristiano';
for letra in Nome do
ShowMessage(letra);
end;
Nesse caso, será mostrado uma mensagem com cada letra da variável Nome.
-While
Esse laço só continua repetindo enquanto a condição for verdadeira. Por exemplo, só executa enquanto a variável i for menor que 10.
i:=1;
while i < 10 do
begin
ShowMessage('O valor de i é ' + IntToStr(i));
i := i + 1; // agora i é igual a 2
end;
Neste caso, o código só será executado enquanto i for menor que 10. No caso acrescentamos 1 a i para que continue sendo executado.
Na próxima vez que for executado, i vai ter o valor de 2, então ainda vai continuar sendo executado pois a instrução é verdadeira até que seja menor que 10.
Na terceira vez, i vai valer 3, e assim consecutivamente.
-Repeat
Similar ao While, porém a estrutura é ao contrário. Ele executa e depois verifica a instrução.
i:=1;
repeat
begin
ShowMessage('O valor de i é ' + IntToStr(i));
i := i + 1; // agora i é igual a 2
until i > 10
end;
Neste caso, o código é executado até que i seja maior que 10.
Abraço e até a próxima.
É BOM ATÉ PARA SUPERDOTADOS!!!
ResponderExcluir