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:
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. |