O que é For Loop?
A instrução "FOR LOOP" é mais adequada quando você deseja executar um código por um número conhecido de vezes, em vez de com base em algumas outras condições.
Neste loop, o limite inferior e o limite superior serão especificados e, enquanto a variável do loop estiver entre esta faixa, o loop será executado.
A variável de loop é autoincremental, portanto, nenhuma operação de incremento explícita é necessária neste loop. A variável de loop não precisa ser declarada, pois é declarada implicitamente.
FORExplicação da sintaxe:in … LOOP … END LOOP;
- Na sintaxe acima, a palavra-chave 'FOR' marca o início do loop e 'END LOOP' marca o fim do loop.
- A variável de loop é avaliada todas as vezes antes de executar a parte de execução.
- O bloco de execução contém todo o código que precisa ser executado. A parte de execução pode conter qualquer instrução de execução.
- O loop_variable é declarado implicitamente durante a execução de todo o loop, e o escopo desta loop_variable estará apenas dentro deste loop.
- Se a variável do loop saiu da faixa, o controle sairá do loop.
- O loop pode ser feito para funcionar na ordem inversa, adicionando a palavra-chave 'REVERSE' antes do limite_inferior.
Exemplo 1 : Neste exemplo, vamos imprimir um número de 1 a 5 usando a instrução de loop FOR. Para isso, executaremos o seguinte código.
BEGINdbms Qutput.put linef.Prp.gram started.' );FOR a IN 1… 5LOOPdbms_output.put_line(a);END LOOP:dbms_output.put_iine('Program completed.');END;/
Explicação do código:
- Linha de código 2 : Imprimindo a instrução "Programa iniciado".
- Linha de código 3: a palavra-chave 'FOR' marca o início do loop e loop_variable 'a' é declarada. Agora terá o valor começando de 1 a 5
- Linha de código 5: Imprime o valor de 'a'.
- Linha de código 6: a palavra - chave 'END LOOP' marca o fim do bloco de execução.
- O código da linha 5 continuará a ser executado até que 'a' alcance o valor 6, pois a condição irá falhar e o controle SAIRÁ do loop.
- Linha de código 7: Imprimindo a declaração "Programa concluído"
Loops aninhados
As instruções de loop também podem ser aninhadas. O loop externo e o interno podem ser de tipos diferentes. No loop aninhado, para cada valor de iteração do loop externo, o loop interno será executado completamente.
LOOP -outerExplicação da sintaxe:LOOP - inner END LOOP; END LOOP;
- Na sintaxe acima, o loop externo possui mais um loop dentro dele.
- Os loops podem ser de qualquer tipo e a parte da funcionalidade de execução é a mesma.
Exemplo 1 : Neste exemplo, vamos imprimir um número de 1 a 3 usando a instrução de loop FOR. Cada número será impresso tantas vezes quanto seu valor. Para isso, executaremos o seguinte código.
DECLAREb NUMBER;BEGINdbms output put line(‘Program started' );FOR a IN 1… 3LOOPb:=1;WHILE (a>=b)LOOPdbms output put line(a);b:=b+1;END LOOP; END LOOP; dbms_output.put_line('Program completed' );END;/
Explicação do código:
- Linha de código 2 : Declarando a variável 'b' como tipo de dados 'NUMBER'.
- Linha de código 4 : Imprimindo a instrução "Programa iniciado".
- Linha de código 5: a palavra-chave 'FOR' marca o início do loop e loop_variable 'a' é declarada. Agora terá o valor começando de 1 a 3
- Linha de código 7: Redefinindo o valor de 'b' para '1' a cada vez.
- Linha de código 8: O loop interno while verifica a condição a> = b.
- Linha de código 10: Imprime o valor de 'a' desde que a condição acima seja satisfeita.
- Linha de código 14: Imprimindo a declaração "Programa concluído"
Resumo
Laço | FOR Loop |
Critério de saída | Saia quando o contador atingir o limite |
Uso | Bom para usar quando a contagem de loop a ser executada é conhecida. |