Oracle PL/SQL FOR LOOP con esempio

Cos'è For Loop?

L'istruzione "FOR LOOP" è più adatta quando si desidera eseguire un codice per un numero noto di volte anziché in base ad altre condizioni.

In questo ciclo verranno specificati il ​​limite inferiore e quello superiore e finché la variabile del ciclo si trova tra questo intervallo, il ciclo verrà eseguito.

La variabile del ciclo è autoincrementale, quindi non è necessaria alcuna operazione di incremento esplicita in questo ciclo. La variabile loop non ha bisogno di essere dichiarata, poiché è dichiarata implicitamente.

FOR <loop_variable> in <lower_limit> .. <higher_limit> 
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
 END LOOP;

Spiegazione della sintassi:

  • Nella sintassi precedente, la parola chiave "FOR" indica l'inizio del ciclo e "END LOOP" indica la fine del ciclo.
  • La variabile del ciclo viene valutata ogni volta prima di eseguire la parte di esecuzione.
  • Il blocco di esecuzione contiene tutto il codice che deve essere eseguito. La parte di esecuzione può contenere qualsiasi istruzione di esecuzione.
  • La variabile_loop viene dichiarata implicitamente durante l'esecuzione dell'intero ciclo e il suo ambito sarà solo all'interno di questo ciclo.
  • Se la variabile del ciclo esce dall'intervallo, il controllo uscirà dal ciclo.
  • Il ciclo può essere fatto funzionare in ordine inverso aggiungendo la parola chiave "REVERSE" prima di lower_limit.

esempio 1: In questo esempio, stamperemo un numero da 1 a 5 usando l'istruzione FOR loop. Per questo, eseguiremo il seguente codice.

Oracle PL/SQL PER CICLO

BEGIN
dbms Qutput.put linef.Prp.gram started.' );
FOR a IN 1 .. 5
LOOP
dbms_output.put_line(a);
END LOOP:
dbms_output.put_iine('Program completed.'); 
END;
/

Spiegazione del codice:

  • Riga di codice 2: Stampa della scritta “Programma avviato”.
  • Riga di codice 3: La parola chiave "FOR" segna l'inizio del ciclo e viene dichiarata loop_variable "a". Ora avrà il valore che va da 1 a 5
  • Riga di codice 5: Stampa il valore di "a".
  • Riga di codice 6: La parola chiave 'END LOOP' segna la fine del blocco di esecuzione.
  • Il codice della riga 5 continuerà ad essere eseguito finché 'a' non raggiunge il valore 6, poiché la condizione fallirà e il controllo uscirà dal ciclo.
  • Riga di codice 7: Stampa della dicitura “Programma completato”

Loop nidificati

Le istruzioni del ciclo possono anche essere annidate. Il circuito esterno e quello interno possono essere di diversi tipi. Nel ciclo nidificato, per ogni valore di iterazione del ciclo esterno, il ciclo interno verrà eseguito completamente.

Loop nidificati

LOOP -outer
<execution block starts>
LOOP — inner
<execution_part> 
END LOOP; 
<execution_block_ends> 
END LOOP;

Spiegazione della sintassi:

  • Nella sintassi precedente, il ciclo esterno ha un ulteriore ciclo al suo interno.
  • I loop possono essere di qualsiasi tipo e la parte di funzionalità di esecuzione è la stessa.

esempio 1: In questo esempio, stamperemo un numero da 1 a 3 usando l'istruzione FOR loop. Ogni numero verrà stampato tante volte quanto il suo valore. Per questo, eseguiremo il seguente codice.

Loop nidificati

Loop nidificati

DECLARE 
b NUMBER;
BEGIN
dbms output put line(‘Program started' );
FOR a IN 1..3 
LOOP
b:=1;
WHILE (a>=b)
LOOP
dbms output put line(a);
b:=b+1;
END LOOP;‭	
END LOOP;‭	‬
dbms_output.put_line('Program completed' );
END;
/

Spiegazione del codice:

  • Riga di codice 2: Dichiara la variabile "b" come tipo di dati "NUMERO".
  • Riga di codice 4: Stampa della scritta “Programma avviato”.
  • Riga di codice 5: La parola chiave "FOR" segna l'inizio del ciclo e viene dichiarata loop_variable "a". Ora avrà il valore che va da 1 a 3
  • Riga di codice 7: Reimpostare il valore di "b" su "1" ogni volta.
  • Riga di codice 8: Interno mentre il ciclo verifica la condizione a>=b.
  • Riga di codice 10: Stampa il valore di 'a' purché la condizione precedente sia soddisfatta.
  • Riga di codice 14: Stampa della dicitura “Programma completato”

Sommario

Ciclo continuo Ciclo FOR
Criteri di uscita Esci quando il contatore raggiunge il limite
Impiego Utile da usare quando si conosce il numero di cicli da eseguire.