Oracle PL / SQL FOR LOOP koos näitega

Lang L: none (table-of-contents):

Anonim

Mis on aasale?

Lause "FOR LOOP" sobib kõige paremini juhul, kui soovite koodi käivitada teadaoleva arvu kordi, mitte mõnel muul tingimusel.

Selles tsüklis määratakse alumine ja ülemine piir ning seni, kuni silmusmuutuja on selle vahemiku vahel, käivitatakse silmus.

Silmusmuutuja on isekasvav, seega pole selles tsüklis selget juurdekasvuoperatsiooni vaja. Silmusmuutujat ei pea deklareerima, kuna see on deklareeritud kaudselt.

FOR  in LOOPEND LOOP;
Süntaksi selgitus:
  • Ülaltoodud süntaksis tähistab märksõna „FOR” tsükli algust ja „END LOOP” - tsükli lõppu.
  • Loop-muutujat hinnatakse iga kord enne täitmisosa käivitamist.
  • Täitmisplokk sisaldab kogu käivitamiseks vajaliku koodi. Täitmisosa võib sisaldada mis tahes täitmislauset.
  • Loop_variable deklareeritakse kaudselt kogu tsükli käivitamise ajal ja selle loop_variable ulatus on ainult selles tsüklis.
  • Kui silmusmuutuja tuli vahemikust välja, siis väljub kontroll silmusest.
  • Lingi saab panna toimima vastupidises järjekorras, lisades enne madalamat_piiri märksõna „PÖÖRDUV”.

Näide 1 : Selles näites trükime numbri vahemikus 1 kuni 5, kasutades FOR-lause lauset. Selleks täidame järgmise koodi.

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

Koodi selgitus:

  • Koodirida 2 : Väljavõtte "Programmi käivitamine" printimine.
  • Koodirida 3: Märksõna „FOR” tähistab tsükli algust ja silmusmuutuja „a” deklareeritakse. Selle väärtus on nüüd vahemikus 1 kuni 5
  • Koodirida 5: prindib väärtuse a.
  • Koodirida 6: Märksõna 'END LOOP' tähistab täitmisbloki lõppu.
  • Rea 5 kood jätkab täitmist seni, kuni 'a' jõuab väärtuseni 6, kuna tingimus ebaõnnestub ja juhtimine väljub silmusest.
  • Koodirida 7: Väljavõtte „Programm lõpetatud” printimine

Pesastatud aasad

Lingilauseid saab ka pesastada. Välimine ja sisemine silmus võivad olla erinevat tüüpi. Pesastatud tsüklis täidetakse sisemine silmus välise silmuse iga korduse väärtuse korral täielikult.

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Süntaksi selgitus:
  • Ülaltoodud süntaksis on välisel silmusel veel üks silmus.
  • Tsüklid võivad olla mis tahes tüüpi ja täitmisfunktsioonide osa on sama.

Näide 1 : Selles näites printime numbri 1 kuni 3, kasutades FOR-tsükli lauset. Iga numbrit trükitakse mitu korda selle väärtusest. Selleks täidame järgmise koodi.

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

Koodi selgitus:

  • Koodirida 2 : muutuja „b” deklareerimine andmetüübiks „NUMBER”.
  • Koodirida 4 : Väljavõtte "Programmi käivitamine" printimine.
  • Koodirida 5: Märksõna „FOR” tähistab tsükli algust ja silmusmuutuja „a” deklareeritakse. Selle väärtus on nüüd vahemikus 1 kuni 3
  • Koodirida 7: lähtestatakse b väärtuse väärtuseks 1 iga kord.
  • Koodirida 8: Inner while loop kontrollib tingimust a> = b.
  • Koodirida 10: prindib a väärtuse seni, kuni ülaltoodud tingimus on täidetud.
  • Koodirida 14: Väljavõtte "Programm lõpetatud" printimine

Kokkuvõte

Loop Loopi jaoks
EXIT-kriteeriumid Väljuge, kui loendur on jõudnud piirini
Kasutamine Hea kasutada, kui on teada täidetavate silmuste loendamine.