Vaikka Loop sisään Oracle PL/SQL esimerkin kanssa

Mikä on PL/SQL While Loop?

Vaikka silmukka PL/SQL:ssä toimii samalla tavalla kuin perussilmukkakäsky, paitsi että EXIT-ehto on silmukan alussa. Se toimii kuin sisääntulon tarkistussilmukka, jossa suorituslohko suoritetaan vain, jos ehto täyttyy, koska poistumisehto tarkistetaan ennen suoritusta.

Se ei nimenomaisesti vaadi 'EXIT'-avainsanaa poistuakseen silmukasta, koska se vahvistaa ehdon implisiittisesti joka kerta.

PL/SQL While Loop Syntaksi

WHILE <EXIT condition>
 LOOP
<execution block starts>
.
.
.
<execution_block_ends>
 END LOOP;
  • Yllä olevassa syntaksissa avainsana 'WHILE' merkitsee silmukan alkua ja END LOOP silmukan loppua.
  • EXIT-ehto arvioidaan aina ennen kuin suoritusosa alkaa suorittaa.
  • Suorituslohko sisältää kaiken koodin, joka on suoritettava.
  • Suoritusosa voi sisältää minkä tahansa suorituskäskyn.

Esimerkki Oracle PL/SQL While Loop

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

PL/SQL While Loop
PL/SQL While Loop -esimerkki
DECLARE
a NUMBER :=1;
BEGIN
dbms_output.put_line('Program started');
WHILE (a <= 5) 
LOOP
dbms_output.put_line(a);
a:=a+1;
END LOOP;
dbms_output.put_line(‘Program completed' ); 	
END:
/

Koodin selitys:

  • Koodirivi 2: Ilmoitetaan muuttuja 'a' 'NUMBER'-tietotyypiksi ja alustetaan arvolla '1'.
  • Koodirivi 4: Lausunnon "Ohjelma aloitettu" tulostaminen.
  • Koodirivi 5: Avainsana WHILE merkitsee silmukan alkua ja tarkistaa myös, onko a:n arvo pienempi tai yhtä suuri kuin 5
  • Koodirivi 7: Tulostaa a:n arvon.
  • Koodirivi 8: Lisää a:n arvoa +1:llä.
  • Koodirivi 9: Avainsana 'END LOOP' merkitsee suorituslohkon lopun.
  • Koodi riviltä 7 ja 8 jatkaa suoritusta, kunnes 'a' saavuttaa arvon 6, koska ehto palauttaa arvon TRUE ja ohjaus POISTU silmukka.
  • Koodirivi 10: Tulosta lausunto "Ohjelma suoritettu"

Yhteenveto

Silmukka WHILE Loop
POISTUkriteerit Poistu, kun tarkistusehto palauttaa epätosi
Käyttö Hyvä käyttää, kun silmukkamäärä on tuntematon ja poistuminen perustuu johonkin muuhun ehtoon.

Tiivistä tämä viesti seuraavasti: