Mi a while hurok?
A WHILE ciklus utasítás hasonlóan működik, mint az Basic ciklus utasítás, kivéve, hogy az EXIT feltétel a ciklus legelején található .
Úgy működik, mint egy belépési ellenőrző hurok, amelyben a végrehajtási blokk még egyszer sem kerül végrehajtásra, ha a feltétel nem teljesül, mivel a kilépési feltétel a végrehajtás előtt ellenőrzi. A ciklusból való kilépéshez nincs szükség kifejezetten az „EXIT” kulcsszóra, mivel a ciklus minden egyes alkalmával implicit módon ellenőrzi a feltételt.
WHILESzintaxis Magyarázat:LOOP … END LOOP;
- A fenti szintaxisban a 'WHILE' kulcsszó a hurok kezdetét, az 'END LOOP' pedig a hurok végét jelöli.
- Az EXIT feltételt minden alkalommal kiértékelik, mielőtt a végrehajtási rész végrehajtásba kezdene.
- 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.
1. példa : Ebben a példában a WHILE ciklus utasítással 1-től 4-ig nyomtatunk. Ehhez a következő kódot hajtjuk végre.
DECLAREa NUMBER :=1;BEGINdbms_output.put_line('Program started');WHILE (a <= 5)LOOPdbms_output.put_line(a);a:=a+1;END LOOP;dbms_output.put_line(‘Program completed' ); END:/
Kód Magyarázat:
- 2. kódsor: Az „a” változó deklarálása „NUMBER” típusú adattípusként és inicializálása „1” értékkel.
- 4. kódsor: A "Program elindult" utasítás kinyomtatása.
- 5. kódsor : A „WHILE” kulcsszó a hurok kezdetét jelöli, és azt is ellenőrzi, hogy az „a” értéke kisebb vagy egyenlő-e 5-vel
- 7. kódsor : Kiírja az 'a' értékét.
- 8. kódsor : Növeli az „a” értékét +1-gyel.
- 9. kódsor : Az „END LOOP” kulcsszó jelzi a végrehajtási blokk végét.
- A 7. és 8. sor kódja folytatódik, amíg az „a” eléri a 6. értéket, mivel a feltétel visszaadja az IGAZ értéket, és a vezérlő kilép a ciklusból.
- 10. kódsor : A "Program befejezve" utasítás nyomtatása
Összegzés
Hurok | Mialatt a hurok |
EXIT kritériumok | Kilép, ha az ellenőrzési feltétel hamis értéket ad vissza |
Használat | Akkor jó használni, ha a hurok száma ismeretlen, és a kilépés valamilyen más feltételen alapul. |