Što su petlje?
Loops omogućuje određeni dio koda u programu da se izvrši željeni broj puta.
U ovom uputstvu vidjet ćemo koncept petlje u PL / SQL-u i tijek kontrole u petljama. Naučit ćeš-
- Uvod u koncept Loops
- Izjave o kontroli petlje
- Vrste petlje u PL / SQL-u
- Izjava o osnovnoj petlji
- Označavanje petlji
Uvod u koncept Loops
Loops koncept pruža sljedeću prednost u kodiranju.
- Ponovna upotrebljivost koda
- Smanjena veličina koda
- Jednostavan protok upravljanja
- Smanjena složenost
Dijagram u nastavku slikovito prikazuje koncept petlje
U gornjem dijagramu provjerit će se stanje petlje i sve dok je zadovoljeno stanje petlje, izvršit će se blok izvršenja.
U svakoj iteraciji varijabla brojača petlje koja zapravo odlučuje o stanju petlje trebala bi se izmijeniti kako bi napravila kontrolni izlaz iz petlje. U nekim je slučajevima ova varijabla brojača petlji operator povećavanja / smanjenja za unaprijed definirano brojanje, a u nekim je slučajevima uvjet pretraživanja koji izvršava blok sve dok ga ne zadovolji.
Izjave o kontroli petlje
Prije učenja koncepta petlji obvezno je naučiti izjave o kontroli petlje. Izjave o kontroli petlje su one koje zapravo kontroliraju tijek izvršavanja unutar petlje. Ispod je detaljan opis izjava o kontroli petlje.
NASTAVITI
Ova ključna riječ šalje upute PL / SQL mehanizmu da će svaki put kada PL / SQL motor naiđe na ovu ključnu riječ unutar petlje preskočiti preostali kôd u izvršnom bloku koda i sljedeća iteracija započet će odmah. To će se uglavnom koristiti ako kod unutar petlje želi biti preskočen za određene vrijednosti iteracije.
IZLAZ / IZLAZ KAD
Ova ključna riječ šalje upute PL / SQL mehanizmu da će svaki put kada PL / SQL motor naiđe na ovu ključnu riječ, ona odmah izaći iz trenutne petlje. Ako PL / SQL mehanizam naiđe na EXIT u ugniježđenoj petlji, tada će izaći iz petlje u kojoj je definiran, tj. U ugniježđene petlje, davanjem EXIT-a u unutarnjoj petlji izlaz će se samo iz kontrole iz unutarnje petlje, ali ne iz vanjske petlje. 'EXIT WHEN' slijedi izraz koji daje logički rezultat. Ako je rezultat ISTINA, tada će kontrola IZLAZITI.
IĆI
Ova će izjava prenijeti kontrolu u označenu izjavu ("GOTO
- Prijenos nadzora može se izvršiti samo unutar potprograma.
- Prijenos kontrole ne može se izvršiti s dijela koji obrađuje iznimke na izvršni dio
Korištenje ove izjave ne preporučuje se ako ne postoje druge alternative, jer će sljedivost upravljanja kodom biti vrlo teška u programu zbog prijenosa kontrole s jednog dijela na drugi dio.
Vrste petlje u PL / SQL-u
PL / SQL pruža sljedeće tri vrste petlji
- Izjava o osnovnoj petlji
- Za izjavu petlje
- Izjava loop
Izjava o osnovnoj petlji
Ova izjava petlje je najjednostavnija struktura petlje u PL / SQL-u. Izvršni blok započinje s ključnom riječi 'LOOP' i završava s ključnom riječi 'END LOOP'.
Izlazni uvjet treba dati unutar ovog izvršnog bloka tako da kontrolira izlaz iz petlje.
Treba mu EXIT ključna riječ koja se izričito daje u izvršnom dijelu za izlazak iz petlje.
LOOPObjašnjenje sintakse:END LOOP;
- U gornjoj sintaksi ključna riječ 'LOOP' označava početak petlje, a 'END LOOP' kraj petlje.
- Izvršni blok sadrži sav kôd koji treba izvršiti, uključujući uvjet EXIT.
- Izvršni dio može sadržavati bilo koju izjavu o izvršenju.
Napomena: Izjava osnovne petlje bez ključne riječi EXIT bit će INFINITE-LOOP koja se nikada neće zaustaviti.
Primjer 1 : U ovom ćemo primjeru ispisati broj od 1 do 5 pomoću osnovne izjave petlje. Za to ćemo izvršiti sljedeći kod.
DECLAREa NUMBER:=1;BEGINdbms_output.put_line('Program started.');LOOPdbms_output.put_line(a);a:=a+1;EXIT WHEN a>5;END LOOP;dbms_output.put_line('Program completed');END:/
Objašnjenje koda:
- Redak koda 2 : Proglašavanje varijable 'a' tipom podataka 'BROJ' i inicijalizacija vrijednošću '1'.
- Redak koda 4 : Ispis izjave "Program pokrenut".
- Redak koda 5: Ključna riječ 'LOOP' označava početak petlje.
- 6. redak koda: ispisuje vrijednost 'a'.
- Redak koda 7: Povećava vrijednost 'a' za +1.
- Redak koda 8: Provjerava je li vrijednost 'a' veća od 5.
- Redak koda 9: Ključna riječ 'END LOOP' označava kraj izvršnog bloka.
- Kôd od retka 6 do retka 8 nastavit će se izvršavati sve dok 'a' ne dosegne vrijednost 6, jer će uvjet vratiti TRUE, a kontrola će EXIT iz petlje.
- Redak koda 10: Ispis izjave "Program završen"
Označavanje petlji
U PL / SQL petlje mogu biti označene. Oznaka mora biti zatvorena između "<<" i ">>". Označavanje petlji, posebno u ugniježđenim kodovima petlje, dat će veću čitljivost. Oznaka se može dati u naredbi EXIT za izlazak iz te određene petlje. Pomoću oznake može se izvršiti kontrola da se izravno izađe iz vanjske petlje ugniježđenih petlji s bilo kojeg mjesta unutar petlji, davanjem naredbe izlaz iza koje slijedi oznaka vanjske petlje.
<Objašnjenje sintakse:>LOOP . < > LOOP --inner END LOOP; . END LOOP;
- U gornjoj sintaksi, petlja out ima unutar sebe još jednu petlju.
- Oznake '<
>' i '< >' oznake su ovih petlji.
Primjer 1 : U ovom ćemo primjeru ispisati broj počevši od 1 pomoću naredbe Basic loop. Svaki će se broj ispisati onoliko puta koliko mu je vrijednost. Gornja granica serije fiksirana je na dijelu deklaracije programa. Naučimo kako možemo koristiti koncept etikete da bismo to postigli. Za to ćemo izvršiti sljedeći kod
DECLAREa NUMBER:=0;b NUMBER;upper-limit NUMBER :=4;BEGINdbms_output.put_line(‘Program started.' );«outerloop» LOOPa:=a+1;b:=l;«inner loop»LOOPEXIT outer_loop WHEN a > upper_limit;dbms_output.put_line(a);b:=b+l;EXIT inner_loop WHEN b>a;END LOOP;END LOOP;dbms_output.put_line('Program completed.');END;/
Objašnjenje koda:
- Redak koda 2-3 : Deklariranje varijable 'a' i 'b' kao tip podataka 'BROJ'.
- Redak koda 4 : Deklariranje varijable 'upper_limit' kao tipa podataka 'NUMBER' s vrijednošću '4'
- Redak 6 : Ispis izjave "Program je pokrenut".
- Redak koda 7: Vanjska petlja označena je kao "external_loop"
- Redak koda 9: Vrijednost 'a' uvećava se za 1.
- Linija koda 11: Unutarnja petlja označena je kao "unutarnja_petlja".
- Redak koda 13: uvjet EXIT koji provjerava je li vrijednost 'a' veća od vrijednosti 'upper_limit'. Ako ne, onda će ići dalje, inače izravno izlazi iz vanjske petlje.
- Redak koda 14: Ispis vrijednosti 'b'.
- Redak koda 15: Povećava vrijednost 'b' za +1.
- Redak koda 16: uvjet EXIT koji provjerava je li vrijednost 'b' veća od 'a'. Ako je tako, tada će izaći iz kontrole iz unutarnje petlje.
- Redak koda 14: Ispis izjave "Program završen"
Sažetak
Petlja | Osnovna petlja |
Kriteriji IZLAZA | Izlaz kada naiđe na ključnu riječ 'EXIT' u izvršnom dijelu |
Upotreba | Dobro je koristiti kada se izlaz ne temelji na nekom određenom stanju. |