Što je za petlju?
Izjava "FOR LOOP" je najprikladnija kada želite izvršiti kôd poznat broj puta, a ne na temelju nekih drugih uvjeta.
U ovoj će se petlji odrediti donja i viša granica i sve dok je varijabla petlje između ovog raspona, petlja će se izvršavati.
Varijabla petlje je samoinkrementalna, tako da u ovoj petlji nije potrebna eksplicitna operacija povećanja. Varijablu petlje ne treba deklarirati, jer je deklarirana implicitno.
FORObjašnjenje sintakse:in … LOOP … END LOOP;
- U gornjoj sintaksi ključna riječ 'FOR' označava početak petlje, a 'END LOOP' kraj petlje.
- Varijabla petlje procjenjuje se svaki put prije izvođenja izvršnog dijela.
- Izvršni blok sadrži sav kôd koji treba izvršiti. Izvršni dio može sadržavati bilo koju izjavu o izvršenju.
- Varijabla petlje deklarira se implicitno tijekom izvršavanja cijele petlje, a opseg ove petlje bit će samo unutar ove petlje.
- Ako je varijabla petlje izašla iz raspona, tada će kontrola izaći iz petlje.
- Petlja se može raditi obrnutim redoslijedom dodavanjem ključne riječi 'REVERSE' prije lower_limit.
Primjer 1 : U ovom ćemo primjeru ispisati broj od 1 do 5 pomoću naredbe FOR petlje. Za to ćemo izvršiti sljedeći kod.
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;/
Objašnjenje koda:
- Redak koda 2 : Ispis izjave "Program je pokrenut".
- Redak koda 3: Ključna riječ 'FOR' označava početak petlje i deklarisana_promjenjiva 'a' je proglašena. Sada će imati vrijednost koja počinje od 1 do 5
- Redak koda 5: ispisuje vrijednost 'a'.
- 6. redak koda: Ključna riječ 'END LOOP' označava kraj izvršnog bloka.
- Kôd iz retka 5 nastavit će se izvršavati sve dok 'a' ne dosegne vrijednost 6, jer uvjet neće uspjeti, a kontrola će IZLAZITI iz petlje.
- Redak koda 7: Ispis izjave "Program završen"
Ugniježđene petlje
Izjave petlje također se mogu ugnijezditi. Vanjska i unutarnja petlja mogu biti različitih vrsta. U ugniježđenoj petlji, za svaku jednu iteracijsku vrijednost vanjske petlje, unutarnja će se petlja izvršiti u potpunosti.
LOOP -outerObjašnjenje sintakse:LOOP - inner END LOOP; END LOOP;
- U gornjoj sintaksi, vanjska petlja ima još jednu petlju unutar sebe.
- Petlje mogu biti bilo koje vrste, a funkcionalnost izvršenja je jednaka.
Primjer 1 : U ovom ćemo primjeru ispisati broj od 1 do 3 pomoću naredbe FOR petlje. Svaki će se broj ispisati onoliko puta koliko mu je vrijednost. Za to ćemo izvršiti sljedeći kod.
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;/
Objašnjenje koda:
- Redak koda 2 : Proglašavanje varijable "b" tipom podataka "BROJ".
- Redak koda 4 : Ispis izjave "Program pokrenut".
- Redak koda 5: Ključna riječ 'FOR' označava početak petlje i deklarirana__promjenjiva 'a' je proglašena. Sada će imati vrijednost koja počinje od 1 do 3
- Redak koda 7: Svaki put resetiranje vrijednosti 'b' na '1'.
- Redak koda 8: Unutarnja petlja while provjerava uvjet a> = b.
- Redak koda 10: Ispisuje vrijednost 'a' sve dok je zadovoljen gornji uvjet.
- Redak koda 14: Ispis izjave "Program završen"
Sažetak
Petlja | ZA Loop |
Kriteriji IZLAZA | Izlaz kad brojač dosegne ograničenje |
Upotreba | Dobro se koristiti kada je poznato brojanje petlji koje treba izvršiti. |