Oracle PL / SQL FOR LOOP con esempio

Sommario:

Anonim

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 il limite superiore e finché la variabile del ciclo si trova tra questo intervallo, il ciclo verrà eseguito.

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

FOR  in LOOPEND 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.
  • Il loop_variable viene dichiarato implicitamente durante l'esecuzione dell'intero ciclo e l'ambito di questo loop_variable sarà solo all'interno di questo ciclo.
  • Se la variabile del ciclo è uscita 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 il numero da 1 a 5 utilizzando l'istruzione FOR loop. Per questo, eseguiremo il codice seguente.

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;/

Spiegazione del codice:

  • Riga di codice 2 : stampa dell'istruzione "Programma avviato".
  • Riga di codice 3: la parola chiave "FOR" contrassegna l'inizio del ciclo e viene dichiarata la variabile loop_variable "a". Ora avrà il valore a partire da 1 a 5
  • Riga di codice 5: stampa il valore di "a".
  • Riga di codice 6: la parola chiave "END LOOP" indica la fine del blocco di esecuzione.
  • Il codice dalla riga 5 continuerà ad essere eseguito fino a quando "a" non raggiunge il valore 6, poiché la condizione fallirà e il controllo uscirà dal ciclo.
  • Riga di codice 7: stampa dell'istruzione "Programma completato"

Cicli annidati

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

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Spiegazione della sintassi:
  • Nella sintassi precedente, il ciclo esterno ha un altro ciclo al suo interno.
  • I loop possono essere di qualsiasi tipo e la parte della funzionalità di esecuzione è la stessa.

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

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;/

Spiegazione del codice:

  • Riga di codice 2 : dichiarazione della variabile "b" come tipo di dati "NUMERO".
  • Riga di codice 4 : stampa dell'istruzione "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 a partire da 1 a 3
  • Riga di codice 7: reimpostazione del valore di "b" su "1" ogni volta.
  • Riga di codice 8: il ciclo while interno verifica la condizione a> = b.
  • Riga di codice 10: stampa il valore di "a" fintanto che la condizione di cui sopra è soddisfatta.
  • Riga di codice 14: stampa dell'istruzione "Programma completato"

Sommario

Ciclo continuo FOR Loop
Criteri di USCITA Esci quando il contatore raggiunge il limite
Utilizzo Buono da usare quando si conosce il conteggio dei loop da eseguire.