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.
FORSzintaxis Magyarázat:in … LOOP … END LOOP;
- 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 -outerSzintaxis Magyarázat:LOOP - inner END LOOP; END LOOP;
- 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. |