Oracle PL/SQL FOR LOOP med eksempel

Hva er For Loop?

"FOR LOOP"-setning er best egnet når du ønsker å kjøre en kode et kjent antall ganger i stedet for basert på noen andre forhold.

I denne sløyfen vil den nedre og den øvre grensen spesifiseres, og så lenge sløyfevariabelen er i mellom dette området, vil løkken bli utført.

Løkkevariabelen er selvinkrementell, så ingen eksplisitt inkrementoperasjon er nødvendig i denne løkken. Løkkevariabelen trenger ikke å deklareres, da den er deklarert implisitt.

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

Syntaks forklaring:

  • I syntaksen ovenfor markerer nøkkelordet 'FOR' begynnelsen av løkken og 'END LOOP' markerer slutten på løkken.
  • Loop-variabelen evalueres hver gang før utførelsesdelen utføres.
  • Utførelsesblokken inneholder all koden som må kjøres. Utførelsesdelen kan inneholde en hvilken som helst utførelseserklæring.
  • Løkkevariabelen er deklarert implisitt under kjøringen av hele løkken, og omfanget av denne løkkevariabelen vil bare være innenfor denne løkken.
  • Hvis loop-variabelen kom ut av området, vil kontrollen gå ut av loopen.
  • Løkken kan fås til å fungere i omvendt rekkefølge ved å legge til nøkkelordet 'REVERSE' før nedre_grense.

Eksempel 1: I dette eksemplet skal vi skrive ut tall fra 1 til 5 ved å bruke FOR loop-setningen. For det vil vi kjøre følgende kode.

Oracle PL/SQL FOR LOOP

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

Kodeforklaring:

  • Kodelinje 2: Skriver ut setningen "Program started".
  • Kodelinje 3: Nøkkelordet 'FOR' markerer begynnelsen av loopen og loop_variable 'a' er deklarert. Den vil nå ha verdien fra 1 til 5
  • Kodelinje 5: Skriver ut verdien av 'a'.
  • Kodelinje 6: Nøkkelordet 'END LOOP' markerer slutten på utførelsesblokken.
  • Koden fra linje 5 vil fortsette å kjøre til 'a' når verdien 6, ettersom tilstanden vil mislykkes, og kontrollen vil EXIT fra løkken.
  • Kodelinje 7: Skriver ut erklæringen "Program fullført"

Nestede løkker

Løkkesetningene kan også nestes. Den ytre og indre løkken kan være av forskjellige typer. I den nestede sløyfen, for hver en iterasjonsverdi av den ytre sløyfen, vil den indre sløyfen bli utført fullt ut.

Nestede løkker

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

Syntaks forklaring:

  • I syntaksen ovenfor har den ytre løkken en løkke til inni seg.
  • Sløyfene kan være av alle typer og utførelsesfunksjonalitetsdelen er den samme.

Eksempel 1: I dette eksemplet skal vi skrive ut tall fra 1 til 3 ved å bruke FOR loop-setning. Hvert tall vil bli skrevet ut like mange ganger som verdien. For det vil vi kjøre følgende kode.

Nestede løkker

Nestede løkker

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

Kodeforklaring:

  • Kodelinje 2: Erklærer variabelen 'b' som 'NUMBER' datatype.
  • Kodelinje 4: Skriver ut setningen "Program started".
  • Kodelinje 5: Nøkkelordet 'FOR' markerer begynnelsen av loopen og loop_variable 'a' er deklarert. Den vil nå ha verdien fra 1 til 3
  • Kodelinje 7: Tilbakestiller verdien av 'b' til '1' hver gang.
  • Kodelinje 8: Indre mens løkken ser etter tilstanden a>=b.
  • Kodelinje 10: Skriver ut verdien av 'a' så lenge betingelsen ovenfor er oppfylt.
  • Kodelinje 14: Skriver ut erklæringen "Program fullført"

Sammendrag

Loop FOR Loop
EXIT-kriterier Avslutt når telleren når grensen
bruk God å bruke når løkketellingen som skal utføres er kjent.

Oppsummer dette innlegget med: