Čo je For Loop?
Výrok „FOR LOOP“ je najvhodnejší, ak chcete kód spustiť viackrát, ako na základe iných podmienok.
V tejto slučke bude zadaná dolná a horná hranica a pokiaľ bude premenná slučky medzi týmto rozsahom, bude slučka vykonaná.
Premenná cyklu je samoinkrementálna, takže v tejto slučke nie je potrebná žiadna explicitná operácia prírastku. Premenná cyklu nemusí byť deklarovaná, pretože je deklarovaná implicitne.
FORVysvetlenie syntaxe:in … LOOP … END LOOP;
- Vo vyššie uvedenej syntaxi kľúčové slovo „FOR“ označuje začiatok slučky a „END LOOP“ označuje koniec slučky.
- Premenná slučky sa vyhodnocuje zakaždým pred vykonaním časti vykonania.
- Exekučný blok obsahuje všetok kód, ktorý je potrebné vykonať. Exekučná časť môže obsahovať akýkoľvek exekučný príkaz.
- Loop_variable je deklarovaný implicitne počas vykonávania celej slučky a rozsah tejto loop_variable bude iba vo vnútri tejto slučky.
- Ak premenná slučky vyšla z rozsahu, potom riadenie zo slučky vystúpi.
- Smyčku je možné nastaviť tak, aby fungovala v opačnom poradí, a to pridaním kľúčového slova „REVERSE“ pred lower_limit.
Príklad 1 : V tomto príklade budeme tlačiť číslo od 1 do 5 pomocou príkazu slučky FOR. Za týmto účelom vykonáme nasledujúci kód.
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;/
Vysvetlenie kódu:
- Riadok kódu 2 : Tlač vyhlásenia „Program spustený“.
- Riadok kódu 3: Kľúčové slovo „FOR“ označuje začiatok slučky a je deklarovaná loop_variable „a“. Teraz bude mať hodnotu začínajúcu od 1 do 5
- Riadok kódu 5: Vytlačí hodnotu „a“.
- Riadok kódu 6: Kľúčové slovo „END LOOP“ označuje koniec bloku vykonania.
- Kód z riadku 5 sa bude naďalej vykonávať, kým znak „a“ nedosiahne hodnotu 6, pretože podmienka zlyhá a ovládací prvok ukončí smyčku.
- Riadok kódu 7: Tlač výpisu „Program je dokončený“
Vnorené slučky
Príkazy cyklu môžu byť tiež vnorené. Vonkajšia a vnútorná slučka môžu byť rôznych typov. Vo vnorenej slučke sa pre každú jednu iteračnú hodnotu vonkajšej slučky vnútorná slučka vykoná úplne.
LOOP -outerVysvetlenie syntaxe:LOOP - inner END LOOP; END LOOP;
- Vo vyššie uvedenej syntaxi má vonkajšia slučka v sebe ešte jednu slučku.
- Smyčky môžu byť ľubovoľného typu a časť s funkčnosťou vykonávania je rovnaká.
Príklad 1 : V tomto príklade budeme tlačiť číslo od 1 do 3 pomocou príkazu slučky FOR. Každé číslo bude vytlačené toľkokrát, koľko je jeho hodnoty. Za týmto účelom vykonáme nasledujúci kód.
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;/
Vysvetlenie kódu:
- Riadok kódu 2 : Deklarácia premennej „b“ ako dátového typu „NUMBER“.
- Riadok kódu 4 : Tlač vyhlásenia „Program spustený“.
- Riadok kódu 5: Kľúčové slovo „FOR“ označuje začiatok slučky a je deklarovaná loop_variable „a“. Teraz bude mať hodnotu začínajúcu od 1 do 3
- Riadok kódu 7: Zakaždým vynulovanie hodnoty „b“ na „1“.
- Riadok kódu 8: Vnútorná slučka while kontroluje stav a> = b.
- Riadok kódu 10: Vytlačí hodnotu „a“, pokiaľ je splnená vyššie uvedená podmienka.
- Riadok kódu 14: Tlač výpisu „Program je dokončený“
Zhrnutie
Slučka | PRE slučku |
Kritériá ODCHODU | Vyjdite, keď počítadlo dosiahne limit |
Využitie | Dobré použiť, keď je známy počet slučiek, ktoré sa majú vykonať. |