Oracle PL/SQL FOR LOOP med eksempel

Hvad er For Loop?

"FOR LOOP"-sætning er bedst egnet, når du ønsker at udføre en kode et kendt antal gange i stedet for baseret på nogle andre forhold.

I denne løkke vil den nedre grænse og den højere grænse blive specificeret, og så længe løkkevariablen er mellem dette område, vil løkken blive udført.

Sløjfevariablen er selvinkrementel, så ingen eksplicit stigningsoperation er nødvendig i denne sløjfe. Løkkevariablen behøver ikke at blive erklæret, da den erklæres implicit.

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

Syntaks forklaring:

  • I ovenstående syntaks markerer nøgleordet 'FOR' begyndelsen af ​​løkken og 'END LOOP' markerer slutningen af ​​løkken.
  • Loop-variablen evalueres hver gang før eksekveringsdelen.
  • Udførelsesblokken indeholder al den kode, der skal udføres. Udførelsesdelen kan indeholde en hvilken som helst udførelseserklæring.
  • Loopvariablen erklæres implicit under udførelsen af ​​hele loopet, og omfanget af denne loop_variable vil kun være inde i denne loop.
  • Hvis sløjfevariablen kom ud af området, vil kontrol forlade sløjfen.
  • Løkken kan fås til at fungere i omvendt rækkefølge ved at tilføje nøgleordet 'REVERSE' før nedre_grænse.

Eksempel 1: I dette eksempel skal vi udskrive nummer fra 1 til 5 ved hjælp af FOR loop-sætning. Til det vil vi udfø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: Udskrivning af erklæringen "Program started".
  • Kodelinje 3: Nøgleordet 'FOR' markerer begyndelsen af ​​løkken, og loop_variablen 'a' erklæres. Det vil nu have værdien fra 1 til 5
  • Kodelinje 5: Udskriver værdien af ​​'a'.
  • Kodelinje 6: Nøgleordet 'END LOOP' markerer slutningen af ​​udførelsesblokken.
  • Koden fra linje 5 vil fortsætte med at eksekvere, indtil 'a' når værdien 6, da betingelsen vil mislykkes, og styringen vil EXIT fra løkken.
  • Kodelinje 7: Udskrivning af erklæringen "Program gennemført"

Indlejrede sløjfer

Løkkeudsagn kan også indlejres. Den ydre og den indre løkke kan være af forskellige typer. I den indlejrede løkke, for hver en iterationsværdi af den ydre løkke, vil den indre løkke blive eksekveret fuldt ud.

Indlejrede sløjfer

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

Syntaks forklaring:

  • I ovenstående syntaks har den ydre sløjfe en sløjfe mere inde i den.
  • Sløjferne kan være af enhver type, og udførelsesfunktionalitetsdelen er den samme.

Eksempel 1: I dette eksempel skal vi udskrive nummer fra 1 til 3 ved hjælp af FOR loop-sætning. Hvert tal vil blive udskrevet lige så mange gange som dets værdi. Til det vil vi udføre følgende kode.

Indlejrede sløjfer

Indlejrede sløjfer

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 variablen 'b' som 'NUMBER' datatype.
  • Kodelinje 4: Udskrivning af erklæringen "Program started".
  • Kodelinje 5: Nøgleordet 'FOR' markerer begyndelsen af ​​løkken, og loop_variablen 'a' erklæres. Det vil nu have værdien fra 1 til 3
  • Kodelinje 7: Nulstilling af værdien af ​​'b' til '1' hver gang.
  • Kodelinje 8: Inner mens løkke kontrollerer betingelsen a>=b.
  • Kodelinje 10: Udskriver værdien af ​​'a', så længe ovenstående betingelse er opfyldt.
  • Kodelinje 14: Udskrivning af erklæringen "Program gennemført"

Resumé

Loop FOR Loop
EXIT-kriterier Afslut, når tælleren når grænsen
Brug God at bruge, når sløjfetælling, der skal udføres, er kendt.