Oracle PL/SQL FOR LOOP cu Exemplu
Ce este For Loop?
Instrucțiunea „FOR LOOP” este cea mai potrivită atunci când doriți să executați un cod de un număr cunoscut de ori, mai degrabă decât pe baza altor condiții.
În această buclă, limita inferioară și limita superioară vor fi specificate și atâta timp cât variabila buclă se află între acest interval, bucla va fi executată.
Variabila buclă este auto-incrementală, deci nu este necesară nicio operație de incrementare explicită în această buclă. Variabila buclă nu trebuie să fie declarată, deoarece este declarată implicit.
FOR <loop_variable> in <lower_limit> .. <higher_limit> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
Explicația sintaxei:
- În sintaxa de mai sus, cuvântul cheie „FOR” marchează începutul buclei și „END LOOP” marchează sfârșitul buclei.
- Variabila buclă este evaluată de fiecare dată înainte de executarea părții de execuție.
- Blocul de execuție conține tot codul care trebuie executat. Partea de execuție poate conține orice instrucțiune de execuție.
- Loop_variable este declarată implicit în timpul execuției întregii bucle, iar sfera acestei loop_variable va fi doar în interiorul acestei bucle.
- Dacă variabila buclă a ieșit din interval, atunci controlul va ieși din buclă.
- Bucla poate fi făcută să funcționeze în ordine inversă, adăugând cuvântul cheie „REVERSE” înainte de low_limit.
Exemplu 1: În acest exemplu, vom tipări numărul de la 1 la 5 folosind instrucțiunea bucla FOR. Pentru asta, vom executa următorul cod.
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; /
Explicația codului:
- Linia de cod 2: Se imprimă declarația „Programul început”.
- Linia de cod 3: Cuvântul cheie „FOR” marchează începutul buclei și este declarată loop_variable „a”. Acum va avea valoarea începând de la 1 la 5
- Linia de cod 5: Imprimă valoarea lui „a”.
- Linia de cod 6: Cuvântul cheie „END LOOP” marchează sfârșitul blocului de execuție.
- Codul de la linia 5 va continua să se execute până când „a” ajunge la valoarea 6, deoarece condiția va eșua, iar controlul va IEȘI din buclă.
- Linia de cod 7: Tipărirea declarației „Program finalizat”
Bucle imbricate
Instrucțiunile buclei pot fi, de asemenea, imbricate. Bucla exterioară și interioară pot fi de diferite tipuri. În bucla imbricată, pentru fiecare valoare de iterație a buclei exterioare, bucla interioară va fi executată complet.
LOOP -outer <execution block starts> LOOP — inner <execution_part> END LOOP; <execution_block_ends> END LOOP;
Explicația sintaxei:
- În sintaxa de mai sus, bucla exterioară mai are o buclă în interior.
- Buclele pot fi de orice tip, iar funcționalitatea de execuție este aceeași.
Exemplu 1: În acest exemplu, vom tipări numărul de la 1 la 3 folosind instrucțiunea bucla FOR. Fiecare număr va fi tipărit de câte ori este valoarea sa. Pentru asta, vom executa următorul cod.
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; /
Explicația codului:
- Linia de cod 2: Declararea variabilei „b” ca tip de date „NUMĂR”.
- Linia de cod 4: Se imprimă declarația „Programul început”.
- Linia de cod 5: Cuvântul cheie „FOR” marchează începutul buclei și este declarată loop_variable „a”. Acum va avea valoarea începând de la 1 la 3
- Linia de cod 7: Resetarea valorii lui „b” la „1” de fiecare dată.
- Linia de cod 8: Interior în timp ce bucla verifică starea a>=b.
- Linia de cod 10: Tipărește valoarea „a” atâta timp cât condiția de mai sus este îndeplinită.
- Linia de cod 14: Tipărirea declarației „Program finalizat”
Rezumat
Buclă | FOR Loop |
---|---|
Criterii EXIT | Ieșiți când contorul atinge limita |
Folosire | Bun de utilizat când se știe numărul de bucle care urmează să fie executate. |