Co jsou to smyčky?
Smyčky umožňují provedení určité části kódu v programu požadovaný počet opakování.
V tomto tutoriálu uvidíme koncept smyčky v PL / SQL a tok řízení ve smyčkách. Naučíte se
- Úvod do konceptu smyček
- Prohlášení o smyčce
- Typy smyček v PL / SQL
- Základní prohlášení o smyčce
- Označování smyček
Úvod do konceptu smyček
Koncept smyček poskytuje při kódování následující výhodu.
- Opakovaná použitelnost kódu
- Zmenšená velikost kódu
- Snadné ovládání
- Snížená složitost
Níže uvedený diagram ukazuje koncept opakování v obraze
Ve výše uvedeném diagramu bude zkontrolována podmínka smyčky a pokud je podmínka smyčky splněna, provede se spouštěcí blok.
V každé iteraci by měla být proměnná čítače smyčky, která ve skutečnosti rozhoduje o stavu smyčky, upravena tak, aby ovládací prvek opustil smyčku. V některých případech je tato proměnná čítače smyčky operátor inkrementace / dekrementace pro předdefinovaný počet a v některých případech jde o podmínku hledání, která udržuje provádění bloku, dokud jej nesplní.
Prohlášení o smyčce
Než se naučíte koncept smyček, je povinné se naučit příkazy ovládání smyčky. Řídicí příkazy smyčky jsou ty, které ve skutečnosti řídí tok provádění uvnitř smyčky. Níže je uveden podrobný popis příkazů řízení smyčky.
POKRAČOVAT
Toto klíčové slovo odešle instrukci do modulu PL / SQL, že kdykoli modul PL / SQL narazí na toto klíčové slovo uvnitř smyčky, pak přeskočí zbývající kód v bloku provádění kódu a další iterace začne okamžitě. To se používá hlavně v případě, že kód uvnitř smyčky chce být přeskočen pro určité hodnoty iterace.
VÝSTUP / VÝSTUP KDYKOLI
Toto klíčové slovo odešle instrukci do modulu PL / SQL, že kdykoli modul PL / SQL narazí na toto klíčové slovo, okamžitě opustí aktuální smyčku. Pokud modul PL / SQL narazí na EXIT ve vnořené smyčce, pak vyjde ze smyčky, ve které byla definována, tj. Ve vnořených smyčkách, pokud EXIT ve vnitřní smyčce opustí ovládání pouze z vnitřní smyčky, ale ne z vnější smyčky. Po 'EXIT WHEN' následuje výraz, který dává logický výsledek. Pokud je výsledek PRAVDA, pak ovládací prvek EXIT.
JÍT DO
Tento příkaz přenese ovládací prvek na popisovaný příkaz ("GOTO
- Převod řízení lze provést pouze v rámci podprogramů.
- Převod řízení nelze provést z části pro zpracování výjimek do části pro provádění
Použití tohoto prohlášení se nedoporučuje, pokud neexistují žádné jiné alternativy, protože sledovatelnost kontroly kódu bude v programu velmi obtížná kvůli přenosu kontroly z jedné části do druhé.
Typy smyček v PL / SQL
PL / SQL poskytuje následující tři typy smyček
- Základní příkaz smyčky
- Pro příkaz smyčky
- While příkaz smyčky
Základní prohlášení o smyčce
Tento příkaz smyčky je nejjednodušší strukturou smyčky v PL / SQL. Blok provádění začíná klíčovým slovem „LOOP“ a končí klíčovým slovem „END LOOP“.
Podmínka ukončení by měla být dána uvnitř tohoto spouštěcího bloku, aby byla kontrola ukončena ze smyčky.
Aby bylo možné ukončit smyčku, potřebuje, aby bylo v exekuční části výslovně uvedeno klíčové slovo EXIT.
LOOPVysvětlení syntaxe:END LOOP;
- Ve výše uvedené syntaxi označuje klíčové slovo „LOOP“ začátek smyčky a „END LOOP“ označuje konec smyčky.
- Blok provádění obsahuje veškerý kód, který je třeba provést, včetně podmínky EXIT.
- Exekuční část může obsahovat jakýkoli exekuční příkaz.
Poznámka: Základní příkaz smyčky bez klíčového slova EXIT bude INFINITE-LOOP, který se nikdy nezastaví.
Příklad 1 : V tomto příkladu budeme tisknout číslo od 1 do 5 pomocí příkazu základní smyčky. Za tímto účelem provedeme následující kód.
DECLAREa NUMBER:=1;BEGINdbms_output.put_line('Program started.');LOOPdbms_output.put_line(a);a:=a+1;EXIT WHEN a>5;END LOOP;dbms_output.put_line('Program completed');END:/
Vysvětlení kódu:
- Řádek kódu 2 : Deklarace proměnné „a“ jako datového typu „NUMBER“ a inicializace s hodnotou „1“.
- Řádek kódu 4 : Tisk prohlášení „Program spuštěn“.
- Řádek kódu 5: Klíčové slovo „LOOP“ označuje začátek smyčky.
- Řádek kódu 6: Vytiskne hodnotu 'a'.
- Řádek kódu 7: Zvyšuje hodnotu 'a' o +1.
- Řádek kódu 8: Zkontroluje, zda je hodnota „a“ větší než 5.
- Řádek kódu 9: Klíčové slovo „END LOOP“ označuje konec bloku provádění.
- Kód z řádku 6 do řádku 8 se bude i nadále spouštět, dokud 'a' nedosáhne hodnoty 6, protože podmínka vrátí TRUE a ovládací prvek ukončí smyčku.
- Řádek kódu 10: Tisk prohlášení „Program dokončen“
Označování smyček
V PL / SQL lze smyčky označit. Štítek by měl být uzavřen mezi „<<“ a „>>“. Označení smyček, zejména v kódech vnořených smyček, zajistí lepší čitelnost. Štítek lze zadat v příkazu EXIT pro ukončení z dané smyčky. Pomocí štítku lze ovládací prvek provést k přímému ukončení vnější smyčky vnořených smyček z libovolného místa uvnitř smyček, a to zadáním příkazu exit následovaným štítkem vnější smyčky.
<Vysvětlení syntaxe:>LOOP . < > LOOP --inner END LOOP; . END LOOP;
- Ve výše uvedené syntaxi má výstupní smyčka uvnitř ještě jednu smyčku.
- '<
>' a '< >' jsou štítky těchto smyček.
Příklad 1 : V tomto příkladu vytiskneme číslo začínající od 1 pomocí příkazu Basic loop. Každé číslo bude vytištěno tolikrát, kolikrát je jeho hodnota. Horní limit série je stanoven na části deklarace programu. Naučme se, jak toho můžeme dosáhnout pomocí konceptu štítku. Za tímto účelem provedeme následující kód
DECLAREa NUMBER:=0;b NUMBER;upper-limit NUMBER :=4;BEGINdbms_output.put_line(‘Program started.' );«outerloop» LOOPa:=a+1;b:=l;«inner loop»LOOPEXIT outer_loop WHEN a > upper_limit;dbms_output.put_line(a);b:=b+l;EXIT inner_loop WHEN b>a;END LOOP;END LOOP;dbms_output.put_line('Program completed.');END;/
Vysvětlení kódu:
- Řádek kódu 2-3 : Deklarace proměnných „a“ a „b“ jako datový typ „ČÍSLO“.
- Řádek kódu 4 : Deklarace proměnné „upper_limit“ jako datového typu „NUMBER“ s hodnotou „4“
- Řádek kódu 6 : Tisk prohlášení „Program spuštěn“.
- Řádek kódu 7: Vnější smyčka byla označena jako „outer_loop“
- Řádek kódu 9: Hodnota 'a' se zvýší o 1.
- Řádek kódu 11: Vnitřní smyčka byla označena jako „internal_loop“.
- Řádek kódu 13: EXIT podmínka, která kontroluje, zda je hodnota „a“ vyšší než hodnota „upper_limit“. Pokud ne, půjde dále, jinak přímo opustí vnější smyčku.
- Řádek kódu 14: Tisk hodnoty „b“.
- Řádek kódu 15: Zvyšuje hodnotu 'b' o +1.
- Řádek kódu 16: EXIT podmínka, která kontroluje, zda je hodnota „b“ vyšší než „a“. Pokud ano, pak ukončí ovládání z vnitřní smyčky.
- Řádek kódu 14: Tisk prohlášení „Program dokončen“
souhrn
Smyčka | Základní smyčka |
KONEC Kritéria | Konec, když narazí na klíčové slovo 'EXIT' v části provádění |
Používání | Dobré použít, když výstup není založen na žádné konkrétní podmínce. |