Kaj je za zanko?
Stavek "FOR LOOP" je najprimernejši, če želite kodo izvajati znano število krat in ne na podlagi nekaterih drugih pogojev.
V tej zanki bosta določeni spodnja in zgornja meja in dokler bo spremenljivka zanke med tem obsegom, se zanka izvaja.
Spremenljivka zanke je samoinkrementalna, zato v tej zanki ni potrebna izrecna operacija povečanja. Spremenljivke zanke ni treba deklarirati, saj je deklarirana implicitno.
FORPojasnilo sintakse:in … LOOP … END LOOP;
- V zgornji sintaksi ključna beseda 'FOR' označuje začetek zanke, 'END LOOP' pa konec zanke.
- Spremenljivka zanke se oceni vsakič, preden se izvede izvedbeni del.
- Izvršitveni blok vsebuje vso kodo, ki jo je treba izvesti. Izvršilni del lahko vsebuje kateri koli stavek o izvedbi.
- Zanka_variable je implicitno deklarirana med izvajanjem celotne zanke in obseg te zanke_variable bo samo znotraj te zanke.
- Če je spremenljivka zanke prišla iz obsega, bo nadzor izstopil iz zanke.
- Zanko lahko nastavite tako, da deluje v obratnem vrstnem redu, tako da pred spodnjo_mejo dodate ključno besedo 'REVERSE'.
Primer 1 : V tem primeru bomo natisnili številko od 1 do 5 z uporabo stavka zanke FOR. Za to bomo izvedli naslednjo kodo.
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;/
Razlaga kode:
- Vrstica kode 2 : Tiskanje stavka "Program se je začel".
- Vrstica kode 3: Ključna beseda 'FOR' označuje začetek zanke in deklarirana je zanka_variable 'a'. Zdaj bo imela vrednost od 1 do 5
- Vrstica kode 5: natisne vrednost 'a'.
- 6. vrstica kode: Ključna beseda 'END LOOP' označuje konec izvedbenega bloka.
- Koda iz vrstice 5 se bo še naprej izvajala, dokler 'a' ne bo dosegla vrednosti 6, saj pogoj ne bo uspel, nadzor pa bo IZHOD iz zanke.
- 7. vrstica kode: tiskanje izjave "Program zaključen"
Vgnezdene zanke
Izjave zanke lahko tudi ugnezdijo. Zunanja in notranja zanka sta lahko različnih vrst. V ugnezdeni zanki se bo vsaka ponovitvena vrednost zunanje zanke v celoti izvedla.
LOOP -outerPojasnilo sintakse:LOOP - inner END LOOP; END LOOP;
- V zgornji skladnji ima zunanja zanka še eno zanko.
- Zanke so lahko katere koli vrste in izvedbeni del je enak.
Primer 1 : V tem primeru bomo natisnili številko od 1 do 3 z uporabo stavka FOR. Vsaka številka bo natisnjena tolikokrat, kolikor je njena vrednost. Za to bomo izvedli naslednjo kodo.
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;/
Razlaga kode:
- 2. vrstica kode : Spremenljivka 'b' se razglasi za podatkovni tip 'ŠTEVILO'.
- Vrstica kode 4 : Tiskanje stavka "Program se je začel".
- Vrstica kode 5: Ključna beseda 'FOR' označuje začetek zanke in zanka_variable 'a' je deklarirana. Zdaj bo imela vrednost od 1 do 3
- Vrstica kode 7: Vsakič ponastavite vrednost 'b' na '1'.
- Vrstica kode 8: Notranja zanka while preverja stanje a> = b.
- Vrstica kode 10: natisne vrednost 'a', če je izpolnjen zgornji pogoj.
- Vrstica kode 14: Tiskanje stavka "Program zaključen"
Povzetek
Loop | ZA zanko |
Merila IZHODA | Izhod, ko števec doseže mejo |
Uporaba | Dobro je uporabiti, ko je znano štetje zank. |