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.