Oracle PL/SQL FOR LOOP s primjerom
Što je For Loop?
Izjava "FOR LOOP" je najprikladnija kada želite izvršiti kod poznati broj puta, a ne na temelju nekih drugih uvjeta.
U ovoj petlji, donja granica i viša granica bit će navedene 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. Varijabla petlje ne mora biti deklarirana, jer je deklarirana implicitno.
FOR <loop_variable> in <lower_limit> .. <higher_limit> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
Objašnjenje sintakse:
- U gornjoj sintaksi ključna riječ 'FOR' označava početak petlje, a 'END LOOP' označava kraj petlje.
- Varijabla petlje se procjenjuje svaki put prije izvođenja izvršnog dijela.
- Izvršni blok sadrži sav kod koji treba izvršiti. Izvršni dio može sadržavati bilo koju naredbu o izvršenju.
- Varijabla_petlje deklarirana je implicitno tijekom izvođenja cijele petlje, a opseg ove varijable_petlje bit će samo unutar ove petlje.
- Ako je varijabla petlje izašla iz raspona, kontrola će izaći iz petlje.
- Petlja se može natjerati da radi obrnutim redoslijedom dodavanjem ključne riječi 'REVERSE' ispred lower_limit.
Primjer 1: U ovom primjeru ispisat ćemo brojeve od 1 do 5 koristeći naredbu FOR petlje. Za to ćemo izvršiti sljedeći kod.
BEGIN dbms Qutput.put linef.Prp.gram started.' ); FOR a IN 1 .. 5 LOOP dbms_output.put_line(a); END LOOP: dbms_output.put_iine('Program completed.'); END; /
Objašnjenje koda:
- Kodna linija 2: Ispis izjave “Program je pokrenut”.
- Redak koda 3: Ključna riječ 'FOR' označava početak petlje i deklarirana je varijabla petlje 'a'. Sada će imati vrijednost koja počinje od 1 do 5
- Redak koda 5: Ispisuje vrijednost 'a'.
- Redak koda 6: Ključna riječ 'END LOOP' označava kraj izvedbenog bloka.
- Kôd iz retka 5 nastavit će se izvršavati dok 'a' ne dosegne vrijednost 6, budući da uvjet neće uspjeti, a kontrola će IZLAZITI iz petlje.
- Redak koda 7: Ispis izjave "Program završen"
Ugniježđene petlje
Naredbe petlje također mogu biti ugniježđene. Vanjska i unutarnja petlja mogu biti različitih vrsta. U ugniježđenoj petlji, za svaku vrijednost iteracije vanjske petlje, unutarnja petlja će se u potpunosti izvršiti.
LOOP -outer <execution block starts> LOOP — inner <execution_part> END LOOP; <execution_block_ends> END LOOP;
Objašnjenje sintakse:
- U gornjoj sintaksi, vanjska petlja ima još jednu unutar sebe.
- Petlje mogu biti bilo koje vrste, a dio funkcionalnosti izvršenja je isti.
Primjer 1: U ovom primjeru ispisat ćemo brojeve od 1 do 3 koristeći naredbu FOR petlje. Svaki će se broj ispisati onoliko puta koliko iznosi njegova vrijednost. Za to ćemo izvršiti sljedeći kod.
DECLARE b NUMBER; BEGIN dbms output put line(‘Program started' ); FOR a IN 1..3 LOOP b:=1; WHILE (a>=b) LOOP dbms output put line(a); b:=b+1; END LOOP; END LOOP; dbms_output.put_line('Program completed' ); END; /
Objašnjenje koda:
- Kodna linija 2: Deklaracija varijable 'b' kao tipa podataka 'BROJ'.
- Kodna linija 4: Ispis izjave “Program je pokrenut”.
- Redak koda 5: Ključna riječ 'FOR' označava početak petlje i deklarirana je varijabla petlje 'a'. Sada će imati vrijednost koja počinje od 1 do 3
- Redak koda 7: Ponovno postavljanje vrijednosti 'b' na '1' svaki put.
- Redak koda 8: Unutrašnji dok petlje provjerava uvjet a>=b.
- Redak koda 10: Ispisuje vrijednost 'a' sve dok je gornji uvjet zadovoljen.
- Redak koda 14: Ispis izjave "Program završen"
rezime
Petlja | FOR petlja |
---|---|
Kriteriji za IZLAZ | Izađite kada brojač dosegne granicu |
Upotreba | Dobro je koristiti kada je poznat broj petlji koje treba izvršiti. |