Oracle PL / SQL FOR LOOP példával

Tartalomjegyzék:

Anonim

Mi a hurok?

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

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

A ciklusváltozó önmagában növekszik, ezért ebben a ciklusban nincs szükség kifejezett növekedési műveletre. A ciklusváltozót nem kell deklarálni, mivel implicit módon van deklarálva.

FOR  in LOOPEND LOOP;
Szintaxis Magyarázat:
  • A fenti szintaxisban a „FOR” kulcsszó a hurok elejét, az „END LOOP” pedig a hurok végét jelöli.
  • A hurok változót minden alkalommal kiértékelik 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 ciklus_változó implicit módon deklarálásra kerül a teljes ciklus végrehajtása során, és ennek a ciklusváltozónak a hatóköre csak ezen a cikluson belül lesz.
  • Ha a ciklusváltozó kijött a tartományból, akkor a vezérlés kilép a ciklusból.
  • A ciklus fordított sorrendben működhet, ha a 'REVERSE' kulcsszót hozzáadja az alsó_korlát elé.

1. példa : Ebben a példában 1 és 5 közötti számot fogunk kinyomtatni a FOR ciklus utasítás használatával. Ehhez a következő kódot hajtjuk végre.

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

Kód Magyarázat:

  • 2. kódsor: A "Program elindult" utasítás kinyomtatása.
  • 3. kódsor : A „FOR” kulcsszó a hurok kezdetét jelöli, és a ciklus_változó „a” deklarálva van. Ennek értéke 1-től 5-ig kezdődik
  • 5. kódsor : Kiírja az 'a' értékét.
  • 6. kódsor : Az „END LOOP” kulcsszó jelzi a végrehajtási blokk végét.
  • Az 5. sor kódja folytatódik, amíg az 'a' el nem éri a 6 értéket, mivel a feltétel meghiúsul, és a vezérlés kilép a ciklusból.
  • 7. kódsor : A "Program befejezve" utasítás nyomtatása

Beágyazott hurkok

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

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Szintaxis Magyarázat:
  • A fenti szintaxisban a külső hurokban még egy hurok van.
  • A ciklusok bármilyen típusúak lehetnek, és a végrehajtási funkciók része megegyezik.

1. példa : Ebben a példában 1 és 3 közötti számot fogunk kinyomtatni a FOR ciklus utasítás használatával. Minden szám annyiszor kerül kinyomtatásra, amennyi az értéke. Ehhez a következő kódot hajtjuk végre.

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

Kód Magyarázat:

  • 2. kódsor: A „b” változó deklarálása „NUMBER” adattípusnak.
  • 4. kódsor: A "Program elindult" utasítás kinyomtatása.
  • 5. kódsor : A „FOR” kulcsszó a hurok kezdetét jelöli, és a ciklus_változó „a” deklarálva van. Ennek értéke 1-től 3-ig kezdődik
  • 7. kódsor : A b értékének visszaállítása minden alkalommal 1-re.
  • 8. kódsor : Belső, míg a hurok ellenőrzi az a> = b feltételt.
  • 10. kódsor : Kiírja az „a” értékét, amennyiben a fenti feltétel teljesül.
  • 14. kódsor: A "Program befejezve" utasítás nyomtatása

Összegzés

Hurok Hurokért
EXIT kritériumok Kilép, amikor a számláló eléri a határt
Használat Jó használni, ha ismert a végrehajtandó hurokszámlálás.