Oracle PL/SQL FOR LOOP s příkladem

Co je For Loop?

Příkaz „FOR LOOP“ je nejvhodnější, když chcete provést kód pro známý počet opakování, spíše než na základě nějakých jiných podmínek.

V této smyčce bude zadán dolní a horní limit a dokud bude proměnná smyčky mezi tímto rozsahem, bude se smyčka provádět.

Proměnná smyčky je samopří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ě.

FOR <loop_variable> in <lower_limit> .. <higher_limit> 
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
 END LOOP;

Vysvětlení syntaxe:

  • 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.
  • Prováděcí blok obsahuje veškerý kód, který je třeba provést. Prováděcí část může obsahovat libovolný příkaz provedení.
  • Proměnná loop_variable je deklarována implicitně během provádění celé smyčky a rozsah této proměnné loop_variable bude pouze uvnitř této smyčky.
  • Pokud se proměnná smyčky dostala mimo rozsah, řízení opustí smyčku.
  • Smyčku lze nastavit tak, aby fungovala v opačném pořadí přidáním klíčového slova 'REVERSE' před dolní_limit.

Příklad 1: V tomto příkladu vytiskneme číslo od 1 do 5 pomocí příkazu FOR cyklu. Za tímto účelem spustíme následující kód.

Oracle PL/SQL PRO LOOP

BEGIN
dbms Qutput.put linef.Prp.gram started.' );
FOR a IN 1 .. 5
LOOP
dbms_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 cyklu a je deklarována proměnná loop_variable '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 bude pokračovat v provádění, dokud 'a' nedosáhne hodnoty 6, protože podmínka selže a ovládací prvek opustí smyčku.
  • Řá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 může být různých typů. Ve vnořené smyčce se pro každou jednu iterační hodnotu vnější smyčky plně provede vnitřní smyčka.

Vnořené smyčky

LOOP -outer
<execution block starts>
LOOP — inner
<execution_part> 
END LOOP; 
<execution_block_ends> 
END LOOP;

Vysvětlení syntaxe:

  • Ve výše uvedené syntaxi má vnější smyčka uvnitř ještě jednu smyčku.
  • Smyčky mohou být libovolného typu a funkční část provedení je stejná.

Příklad 1: V tomto příkladu vytiskneme číslo od 1 do 3 pomocí příkazu FOR cyklu. Každé číslo bude vytištěno tolikrát, kolikrát je jeho hodnota. Za tímto účelem spustíme následující kód.

Vnořené smyčky

Vnořené smyčky

DECLARE 
b NUMBER;
BEGIN
dbms output put line(‘Program started' );
FOR a IN 1..3 
LOOP
b:=1;
WHILE (a>=b)
LOOP
dbms 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: Deklarování proměnné 'b' jako datového typu 'NUMBER'.
  • Řádek kódu 4: Tisk prohlášení „Program spuštěn“.
  • Řádek kódu 5: Klíčové slovo 'FOR' označuje začátek cyklu a je deklarována proměnná loop_variable '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í zatímco smyčka kontroluje podmínku a>=b.
  • Řádek kódu 10: Vytiskne hodnotu 'a', pokud je splněna výše uvedená podmínka.
  • Řádek kódu 14: Tisk prohlášení „Program dokončen“

Shrnutí

Smyčka PRO Smyčka
EXIT Kritéria Ukončete, když počítadlo dosáhne limitu
Používání Vhodné použít, když je znám počet smyček, které se mají provést.