Oracle PL/SQL FOR LOOP példával

Mi az a For Loop?

A „FOR LOOP” utasítás akkor a legalkalmasabb, ha egy kódot ismert számú alkalommal szeretne végrehajtani, nem pedig más feltételek alapján.

Ebben a ciklusban az alsó és a felső határ kerül meghatározásra, és amíg a ciklusváltozó e tartomány között van, a ciklus végrehajtódik.

A ciklusváltozó önnövekményes, ezért ebben a ciklusban nincs szükség kifejezett növekményes műveletre. A ciklusváltozót nem kell deklarálni, mivel implicit módon deklarálják.

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

Szintaxis magyarázata:

  • A fenti szintaxisban a „FOR” kulcsszó a ciklus kezdetét, az „END LOOP” pedig a ciklus végét jelöli.
  • A ciklusváltozó minden alkalommal kiértékelésre kerül a végrehajtási rész végrehajtása előtt.
  • A végrehajtási blokk tartalmazza az összes végrehajtandó kódot. A végrehajtási rész bármilyen végrehajtási utasítást tartalmazhat.
  • A loop_variable implicit módon deklarálva van a teljes ciklus végrehajtása során, és ennek a loop_variable hatóköre csak ezen a cikluson belül lesz.
  • Ha a ciklusváltozó kikerült a tartományból, akkor a vezérlés kilép a ciklusból.
  • A ciklus fordított sorrendben működhet, ha hozzáadja a 'REVERSE' kulcsszót az alsó_korlát elé.

Példa 1: Ebben a példában 1-től 5-ig számot fogunk nyomtatni a FOR ciklus utasítással. Ehhez a következő kódot fogjuk végrehajtani.

Oracle PL/SQL FOR LOOP

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

Kód magyarázata:

  • 2. kódsor: A „Program indulva” utasítás kinyomtatása.
  • 3. kódsor: A "FOR" kulcsszó a ciklus kezdetét jelöli, és az "a" ciklus_változó deklarálva van. Ennek értéke most 1 és 5 között lesz
  • 5. kódsor: Kiírja az „a” értékét.
  • 6. kódsor: Az 'END LOOP' kulcsszó a végrehajtási blokk végét jelöli.
  • Az 5. sor kódja addig fut, amíg az 'a' el nem éri a 6-os értéket, mivel a feltétel sikertelen lesz, és a vezérlő KILÉPIK a ciklusból.
  • 7. kódsor: „A program befejeződött” nyilatkozat kinyomtatása

Beágyazott hurkok

A ciklusutasítások egymásba ágyazhatók is. A külső és a belső hurok különböző típusú lehet. A beágyazott ciklusban a külső ciklus minden egyes iterációs értékénél a belső ciklus teljes mértékben végrehajtásra kerül.

Beágyazott hurkok

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

Szintaxis magyarázata:

  • A fenti szintaxisban a külső ciklusban van még egy ciklus.
  • A hurkok bármilyen típusúak lehetnek, és a végrehajtási funkcionalitás része ugyanaz.

Példa 1: Ebben a példában 1-től 3-ig számot fogunk nyomtatni a FOR ciklus utasítással. Minden szám annyiszor kerül kinyomtatásra, ahányszor az értéke. Ehhez a következő kódot fogjuk végrehajtani.

Beágyazott hurkok

Beágyazott hurkok

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

Kód magyarázata:

  • 2. kódsor: A 'b' változó deklarálása 'NUMBER' adattípusként.
  • 4. kódsor: A „Program indulva” utasítás kinyomtatása.
  • 5. kódsor: A "FOR" kulcsszó a ciklus kezdetét jelöli, és az "a" ciklus_változó deklarálva van. Ennek értéke most 1 és 3 között lesz
  • 7. kódsor: A „b” értékének minden alkalommal visszaállítása „1”-re.
  • 8. kódsor: Belső míg hurok ellenőrzi az a>=b feltételt.
  • 10. kódsor: Kiírja az „a” értékét, amíg a fenti feltétel teljesül.
  • 14. kódsor: „A program befejeződött” nyilatkozat kinyomtatása

Összegzésként

Hurok FOR Loop
KILÉPÉSI kritériumok Lépjen ki, amikor a számláló eléri a határértéket
Használat Jól használható, ha ismert a végrehajtandó hurkok száma.