Oracle PL/SQL FOR LOOP s primjerom

โšก Pametni saลพetak

Oracle PL/SQL FOR petlja izvrลกava blok koda poznati broj puta izmeฤ‘u donje i gornje granice. Varijabla petlje je implicitno deklarirana i sama se poveฤ‡ava, tako da nije potreban ruฤni brojaฤ, a kljuฤna rijeฤ REVERSE omoguฤ‡uje petlji da broji prema dolje.

  • ๐Ÿ”ข Najbolje za: FOR petlja odgovara poznatom broju iteracija, a ne uvjetu otvorenog tipa.
  • ๐Ÿ“ Raspon: Donja i gornja granica definiraju koliko puta se petlja izvrลกava.
  • ๏ธ Implicitni brojaฤ: Varijabla petlje se deklarira automatski i sama se poveฤ‡ava.
  • ๐ŸŽฏ Opseg: Varijabla petlje postoji samo unutar petlje.
  • ๐Ÿ”„ POLEฤINA: Dodavanjem naredbe REVERSE prije donje granice petlja se odbrojava unatrag.
  • ๐Ÿชœ Ugnijeลพฤ‘eno: Petlje se mogu ugnijeลพฤ‘ivati, a unutarnja petlja se u potpunosti izvrลกava za svaku vanjsku iteraciju.
  • ๐Ÿšช Automatski izlaz: Petlja se automatski zavrลกava kada varijabla napusti raspon.

Oracle PL/SQL petlja za for

ล to je FOR petlja?

Naredba "FOR LOOP" je najprikladnija kada ลพelite izvrลกiti kod poznati broj puta, a ne na temelju nekog drugog uvjeta.

U ovoj petlji se odreฤ‘uju donja i gornja granica, i petlja se izvrลกava sve dok se varijabla petlje nalazi unutar tog raspona.

Varijabla petlje je samoinkrementalna, tako da nije potrebna eksplicitna operacija poveฤ‡anja. Varijabla petlje ne mora biti deklarirana, jer je implicitno deklarirana.

FOR <loop_variable> in <lower_limit> .. <higher_limit>
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
END LOOP;

Objaลกnjenje sintakse:

  • Kljuฤna rijeฤ 'FOR' oznaฤava poฤetak petlje, a 'END LOOP' kraj.
  • Varijabla petlje se procjenjuje svaki put prije izvrลกavanja izvrลกnog dijela.
  • Izvrลกni blok sadrลพi sav kod koji se treba pokrenuti i moลพe sadrลพavati bilo koju izvrลกnu naredbu.
  • Varijabla_petlje se implicitno deklarira tijekom izvrลกavanja petlje, a njen opseg je samo unutar petlje.
  • Kada varijabla petlje izaฤ‘e izvan raspona, upravljanje izlazi iz petlje.
  • Petlja se moลพe natjerati da radi obrnutim redoslijedom dodavanjem kljuฤne rijeฤi 'REVERSE' prije donje_limite.

Primjer 1: U ovom primjeru ispisujemo brojeve od 1 do 5 koristeฤ‡i naredbu FOR petlje.

FOR petlja ispisuje brojeve od 1 do 5

BEGIN
dbms_output.put_line('Program started.');
FOR a IN 1 .. 5
LOOP
dbms_output.put_line(a);
END LOOP;
dbms_output.put_line('Program completed.');
END;
/

Code Objaลกnjenje:

  • Code redak 2: Ispis izjave โ€žProgram pokrenutโ€œ.
  • Code redak 3: Kljuฤna rijeฤ 'FOR' oznaฤava poฤetak petlje i deklarira se varijabla petlje 'a'. Sada uzima vrijednosti od 1 do 5.
  • Code redak 5: Ispisuje vrijednost 'a'.
  • Code redak 6: Kljuฤna rijeฤ 'END LOOP' oznaฤava kraj izvrลกnog bloka.
  • Redak 5 se nastavlja izvrลกavati sve dok 'a' ne dostigne vrijednost 6, u kojem trenutku uvjet ne uspijeva i kontrola izlazi iz petlje.
  • Code redak 7: Ispis izjave โ€žProgram zavrลกenโ€œ.

Ugnijeลพฤ‘ene petlje

Naredbe petlji takoฤ‘er mogu biti ugnijeลพฤ‘ene. Vanjska i unutarnja petlja mogu biti razliฤitih tipova. U ugnijeลพฤ‘enoj petlji, za svaku iteraciju vanjske petlje, unutarnja petlja se izvrลกava u potpunosti.

Struktura ugnijeลพฤ‘ene petlje

LOOP --outer
<execution block starts>
LOOP --inner
<execution_part>
END LOOP;
<execution_block_ends>
END LOOP;

Objaลกnjenje sintakse:

  • Vanjska petlja ima joลก jednu petlju unutar sebe.
  • Petlje mogu biti bilo koje vrste, a funkcionalnost izvrลกavanja je ista.

Primjer 1: U ovom primjeru ispisujemo brojeve od 1 do 3 pomoฤ‡u naredbe FOR petlje. Svaki broj se ispisuje onoliko puta koliko mu je vrijednost.

Primjer ugnijeลพฤ‘ene FOR petlje, 1. dio

Primjer ugnijeลพฤ‘ene FOR petlje, 2. dio

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;
/

Code Objaลกnjenje:

  • Code redak 2: Deklariranje varijable 'b' kao tipa podataka 'BROJ'.
  • Code redak 4: Ispis izjave โ€žProgram pokrenutโ€œ.
  • Code redak 5: Kljuฤna rijeฤ 'FOR' oznaฤava poฤetak petlje i deklarira se varijabla petlje 'a'. Sada uzima vrijednosti od 1 do 3.
  • Code redak 7: Ponovno postavljanje vrijednosti 'b' na '1' svaki put.
  • Code redak 8: Unutarnji dok petlje provjerava uvjet a>=b.
  • Code redak 10: Ispisuje vrijednost 'a' sve dok je gornji uvjet zadovoljen.
  • Code redak 14: Ispis izjave โ€žProgram zavrลกenโ€œ.

FOR petlja i OBRNUTA FOR petlja

Prema zadanim postavkama, FOR petlja broji prema gore od donje granice do gornje granice. Dodavanjem kljuฤne rijeฤi REVERSE broji prema dolje, a keeping granice istim redoslijedom. Oba oblika su prikazana zajedno u nastavku kako bi razlika bila jasna.

Oblik Kombajn Redoslijed vrijednosti
Uzlazni ZA U 1 .. 5 1, 2, 3, 4, 5
Silazni ZA UNATRAG 1 .. 5 5, 4, 3, 2, 1

Imajte na umu da se ฤak i s REVERSE-om donja granica i dalje zapisuje prije gornje granice; mijenja se samo smjer iteracije. Za petlje ฤiji broj nije unaprijed poznat, osnovna petlja je bolji izbor.

Pitanja i odgovori

Ne. FOR petlja implicitno deklarira svoju varijablu i ona postoji samo unutar petlje. Deklarisanje varijable istog imena izvan petlje ne utjeฤe na onu koju koristi petlja.

REVERSE ฤini da petlja iterira od gornje granice prema dolje do donje granice. Granice se i dalje zapisuju od niske prema visokoj; samo je redoslijed posjeฤ‡ivanja vrijednosti obrnut.

Koristite FOR petlju kada je broj iteracija unaprijed poznat, kao ลกto je fiksni raspon. Koristite WHILE petlju kada petlja treba nastaviti dok je uvjet ispunjen, a broj iteracija nije fiksan.

Da, kada osnovna petlja jednostavno broji izmeฤ‘u dvije fiksne vrijednosti. AI moลพe zamijeniti ruฤni brojaฤ i EXIT s FOR rasponom, ฤineฤ‡i kod kraฤ‡im. Potvrdite da granice odgovaraju originalu.

Ne. Varijabla petlje je samo za ฤitanje unutar petlje, pa dodjeljivanje njoj izaziva greลกku kompajliranja. Za promjenu tijeka upotrijebite zasebnu varijablu ili izaฤ‘ite iz petlje s EXIT.

Saลพmite ovu objavu uz: