Co je For Loop?
Příkaz „FOR LOOP“ je nejvhodnější, pokud chcete spustit kód známým počtem opakování, než na základě jiných podmínek.
V této smyčce bude zadán dolní limit a horní limit a pokud bude proměnná smyčky mezi tímto rozsahem, bude smyčka provedena.
Proměnná smyčky je samo-přírůstková, takže v této smyčce není potřeba žádná explicitní operace přírůstku. Proměnná smyčky nemusí být deklarována, protože je deklarována implicitně.
FORVysvětlení syntaxe:in … LOOP … END LOOP;
- Ve výše uvedené syntaxi klíčové slovo „FOR“ označuje začátek smyčky a „END LOOP“ označuje konec smyčky.
- Proměnná smyčky je vyhodnocena pokaždé před provedením prováděcí části.
- Blok provádění obsahuje veškerý kód, který je třeba provést. Exekuční část může obsahovat jakýkoli exekuční příkaz.
- Loop_variable je deklarován implicitně během provádění celé smyčky a rozsah této loop_variable bude pouze uvnitř této smyčky.
- Pokud proměnná smyčky vyšla z rozsahu, pak řízení opustí smyčku.
- Smyčku lze nastavit tak, aby fungovala v opačném pořadí, a to přidáním klíčového slova „REVERSE“ před lower_limit.
Příklad 1 : V tomto příkladu budeme tisknout číslo od 1 do 5 pomocí příkazu smyčky FOR. Za tímto účelem provedeme následující 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;/
Vysvětlení kódu:
- Řádek kódu 2 : Tisk prohlášení „Program spuštěn“.
- Řádek kódu 3: Klíčové slovo „FOR“ označuje začátek smyčky a je deklarována smyčková proměnná „a“. Nyní bude mít hodnotu od 1 do 5
- Řádek kódu 5: Vytiskne hodnotu 'a'.
- Řádek kódu 6: Klíčové slovo „END LOOP“ označuje konec bloku provádění.
- Kód z řádku 5 se bude i nadále spouštět, dokud hodnota „a“ nedosáhne hodnoty 6, protože podmínka selže, a ovládací prvek EXIT ze smyčky.
- Řádek kódu 7: Tisk prohlášení „Program dokončen“
Vnořené smyčky
Příkazy smyčky lze také vnořit. Vnější a vnitřní smyčka mohou být různých typů. Ve vnořené smyčce se pro každou jednu iterační hodnotu vnější smyčky provede vnitřní smyčka plně.
LOOP -outerVysvětlení syntaxe:LOOP - inner END LOOP; END LOOP;
- Ve výše uvedené syntaxi má vnější smyčka uvnitř ještě jednu smyčku.
- Smyčky mohou být jakéhokoli typu a část funkce provádění je stejná.
Příklad 1 : V tomto příkladu budeme tisknout číslo od 1 do 3 pomocí příkazu smyčky FOR. Každé číslo bude vytištěno tolikrát, kolikrát je jeho hodnota. Za tímto účelem provedeme následující 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;/
Vysvětlení kódu:
- Řádek kódu 2 : Deklarace proměnné „b“ jako datového typu „ČÍSLO“.
- Řádek kódu 4 : Tisk prohlášení „Program spuštěn“.
- Řádek kódu 5: Klíčové slovo „FOR“ označuje začátek smyčky a je deklarována smyčková proměnná „a“. Nyní bude mít hodnotu od 1 do 3
- Řádek kódu 7: Pokaždé resetování hodnoty „b“ na „1“.
- Řádek kódu 8: Vnitřní smyčka while kontroluje stav a> = b.
- Řádek kódu 10: Tiskne hodnotu 'a', pokud je splněna výše uvedená podmínka.
- Řádek kódu 14: Tisk prohlášení „Program dokončen“
souhrn
Smyčka | PRO smyčku |
KONEC Kritéria | Ukončete, když počitadlo dosáhne limitu |
Používání | Dobré použít, když je znám počet smyček, které mají být provedeny. |