Oracle PL/SQL FOR LOOP näitega

Mis on For Loop?

"FOR LOOP" lause sobib kõige paremini siis, kui soovite koodi käivitada teatud arvu kordi, mitte mõnel muul tingimusel.

Selles tsüklis määratakse alumine ja kõrgem limiit ning seni, kuni tsükli muutuja on selle vahemiku vahel, tsükkel käivitatakse.

Silmusmuutuja on isekasvav, seega pole selles tsüklis vaja selgesõnalist juurdekasvutoimingut. Silmusmuutujat ei pea deklareerima, kuna see deklareeritakse kaudselt.

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

Süntaksi selgitus:

  • Ülaltoodud süntaksis tähistab märksõna "FOR" tsükli algust ja "END LOOP" tsükli lõppu.
  • Silmusmuutujat hinnatakse iga kord enne täitmisosa täitmist.
  • Täitmisplokk sisaldab kogu koodi, mis tuleb käivitada. Täiteosa võib sisaldada mis tahes täitmislauset.
  • Muutuja silmus_muutuja deklareeritakse kaudselt kogu tsükli täitmise ajal ja selle tsükli_muutuja ulatus on ainult selles tsüklis.
  • Kui tsüklimuutuja väljus vahemikust, väljub kontroll tsüklist.
  • Silmuse saab tööle panna vastupidises järjekorras, lisades märksõna 'REVERSE' enne alampiiri.

Näiteks 1: Selles näites prindime arvu vahemikus 1 kuni 5, kasutades tsüklilauset FOR. Selleks käivitame järgmise koodi.

Oracle PL/SQL FOR 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;
/

Koodi selgitus:

  • Koodirida 2: Avalduse “Programm käivitatud” trükkimine.
  • Koodirida 3: Märksõna "FOR" tähistab tsükli algust ja tsükli_muutuja "a" deklareeritakse. Nüüd on selle väärtus vahemikus 1 kuni 5
  • Koodirida 5: Prindib 'a' väärtuse.
  • Koodirida 6: Märksõna 'END LOOP' tähistab täitmisploki lõppu.
  • Rea 5 koodi täitmine jätkub, kuni 'a' jõuab väärtuseni 6, kuna tingimus nurjub ja juhtseade VÄLJUB tsüklist.
  • Koodirida 7: Teate "Programm lõpetatud" trükkimine

Pesastatud silmused

Silmuslauseid saab ka pesastada. Väline ja sisemine silmus võivad olla erinevat tüüpi. Pesastatud tsüklis täidetakse välistsükli iga kordusväärtuse korral sisemine tsükkel täielikult.

Pesastatud silmused

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

Süntaksi selgitus:

  • Ülaltoodud süntaksis on välimise tsükli sees veel üks silmus.
  • Silmused võivad olla mis tahes tüüpi ja täitmisfunktsiooni osa on sama.

Näiteks 1: Selles näites prindime arvu 1 kuni 3, kasutades tsüklilauset FOR. Iga number trükitakse nii mitu korda kui selle väärtus. Selleks käivitame järgmise koodi.

Pesastatud silmused

Pesastatud silmused

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;
/

Koodi selgitus:

  • Koodirida 2: muutuja 'b' deklareerimine andmetüübiks 'NUMBER'.
  • Koodirida 4: Avalduse “Programm käivitatud” trükkimine.
  • Koodirida 5: Märksõna "FOR" tähistab tsükli algust ja tsükli_muutuja "a" deklareeritakse. Nüüd on selle väärtus vahemikus 1 kuni 3
  • Koodirida 7: 'b' väärtuse lähtestamine iga kord väärtusele 1.
  • Koodirida 8: Sisemine samas silmus kontrollib tingimust a>=b.
  • Koodirida 10: Prindib „a” väärtuse seni, kuni ülaltoodud tingimus on täidetud.
  • Koodirida 14: Teate "Programm lõpetatud" trükkimine

kokkuvõte

Silmus FOR Loop
VÄLJUMISkriteeriumid Väljuge, kui loendur jõuab piirini
Kasutus Hea kasutada, kui täidetavate tsüklite arv on teada.

Võta see postitus kokku järgmiselt: