Oracle PL / SQL FOR LOOP esimerkillä

Sisällysluettelo:

Anonim

Mikä on silmukka?

"FOR LOOP" -lauseke sopii parhaiten, kun haluat suorittaa koodin tunnetun määrän kertoja eikä perustua muihin olosuhteisiin.

Tässä silmukassa alaraja ja ylempi raja määritetään ja niin kauan kuin silmukan muuttuja on tämän alueen välissä, silmukka suoritetaan.

Silmukkamuuttuja on itse inkrementaalinen, joten tässä silmukassa ei tarvita nimenomaista lisäysoperaatiota. Silmukan muuttujaa ei tarvitse ilmoittaa, koska se ilmoitetaan implisiittisesti.

FOR  in LOOPEND LOOP;
Syntaksi Selitys:
  • Edellä olevassa syntaksissa avainsana 'FOR' merkitsee silmukan alkua ja 'END LOOP' silmukan loppua.
  • Loop-muuttuja arvioidaan joka kerta ennen suoritusosan suorittamista.
  • Suorituslohko sisältää kaiken suoritettavan koodin. Suoritusosa voi sisältää minkä tahansa suorituslausekkeen.
  • Silmukan_muuttuja ilmoitetaan implisiittisesti koko silmukan suorituksen aikana, ja tämän silmukka-muuttujan laajuus on vain tämän silmukan sisällä.
  • Jos silmukan muuttuja tuli alueen ulkopuolelle, ohjaus poistuu silmukasta.
  • Silmukka voidaan saada toimimaan päinvastaisessa järjestyksessä lisäämällä avainsana 'REVERSE' ennen alempaa_rajaa.

Esimerkki 1 : Tässä esimerkissä aiomme tulostaa numeron 1 - 5 käyttämällä FOR-silmukka-käskyä. Tätä varten suoritamme seuraavan koodin.

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

Koodin selitys:

  • Koodirivi 2 : "Käynnistetty ohjelma" -lausekkeen tulostaminen.
  • Koodirivi 3: Avainsana 'FOR' merkitsee silmukan alkua ja loop_muuttuja 'a' ilmoitetaan. Sen arvo on nyt välillä 1–5
  • Koodirivi 5: Tulostaa a-arvon.
  • Koodirivi 6: Avainsana END LOOP merkitsee suorituslohkon loppua.
  • Rivin 5 koodi jatkuu, kunnes 'a' saavuttaa arvon 6, kun ehto epäonnistuu ja ohjaus poistuu silmukasta.
  • Koodirivi 7: Lausunnon "Ohjelma valmis" tulostaminen

Sisäkkäiset silmukat

Silmukka-lauseet voidaan myös sisäkkäin. Ulompi ja sisempi silmukka voivat olla erityyppisiä. Sisäkkäisessä silmukassa, jokainen ulomman silmukan iterointiarvo, sisäinen silmukka suoritetaan kokonaan.

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Syntaksi Selitys:
  • Edellä olevassa syntaksissa ulkosilmukassa on vielä yksi silmukka sen sisällä.
  • Silmukat voivat olla minkä tahansa tyyppisiä ja suoritusfunktioiden osa on sama.

Esimerkki 1 : Tässä esimerkissä aiomme tulostaa numeron 1 - 3 käyttämällä FOR-silmukka-käskyä. Jokainen numero tulostetaan niin monta kertaa kuin arvo. Tätä varten suoritamme seuraavan koodin.

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

Koodin selitys:

  • Koodirivi 2 : Muuttujan b ilmoittaminen tietotyypiksi NUMBER.
  • Koodirivi 4 : Lausekkeen "Ohjelma aloitettu" tulostaminen.
  • Koodirivi 5: Avainsana 'FOR' merkitsee silmukan alkua ja loop_muuttuja 'a' ilmoitetaan. Sen arvo on nyt 1-3
  • Koodirivi 7: Palautetaan b : n arvo arvoon 1 aina.
  • Koodirivi 8: Inner while loop tarkistaa ehdon a> = b.
  • Koodirivi 10: Tulostaa a-arvon, kunhan yllä oleva ehto täyttyy.
  • Koodirivi 14: Lausunnon "Ohjelma valmis" tulostaminen

Yhteenveto

Silmukka Loopille
POISTUMISEHDOT Poistu, kun laskuri saavuttaa rajan
Käyttö Hyvä käyttää, kun suoritettava silmukalaskenta on tiedossa.