Oracle PL / SQL FOR LOOP met voorbeeld

Inhoudsopgave:

Anonim

Wat is For Loop?

De instructie "FOR LOOP" is het meest geschikt als u een code voor een bekend aantal keren wilt uitvoeren in plaats van op basis van andere voorwaarden.

In deze lus worden de ondergrens en de bovengrens gespecificeerd en zolang de lusvariabele zich tussen dit bereik bevindt, wordt de lus uitgevoerd.

De lusvariabele is zelf-incrementeel, dus er is geen expliciete increment-bewerking nodig in deze lus. De lusvariabele hoeft niet te worden gedeclareerd, omdat deze impliciet wordt gedeclareerd.

FOR  in LOOPEND LOOP;
Syntaxis Uitleg:
  • In de bovenstaande syntaxis markeert trefwoord 'FOR' het begin van de lus en 'END LOOP' het einde van de lus.
  • De lusvariabele wordt elke keer geëvalueerd voordat het uitvoeringsgedeelte wordt uitgevoerd.
  • Het uitvoeringsblok bevat alle code die moet worden uitgevoerd. Het uitvoeringsgedeelte kan elke uitvoeringsverklaring bevatten.
  • De lus_variabele wordt impliciet gedeclareerd tijdens de uitvoering van de hele lus, en de reikwijdte van deze lus_variabele zal alleen binnen deze lus vallen.
  • Als de lusvariabele buiten het bereik komt, verlaat de besturing de lus.
  • De lus kan in omgekeerde volgorde worden uitgevoerd door het sleutelwoord 'REVERSE' toe te voegen voor lower_limit.

Voorbeeld 1 : In dit voorbeeld gaan we een nummer van 1 tot 5 afdrukken met de FOR-lusinstructie. Daarvoor voeren we de volgende code uit.

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

Code Verklaring:

  • Coderegel 2 : Afdrukken van het statement "Programma gestart".
  • Coderegel 3: Sleutelwoord 'FOR' markeert het begin van de lus en loop_variable 'a' wordt gedeclareerd. Het heeft nu de waarde beginnend van 1 tot 5
  • Coderegel 5: drukt de waarde van 'a' af.
  • Coderegel 6: Trefwoord 'END LOOP' markeert het einde van het uitvoeringsblok.
  • De code van regel 5 zal worden uitgevoerd totdat 'a' de waarde 6 bereikt, omdat de conditie zal mislukken en de besturing de lus verlaat.
  • Coderegel 7: Afdrukken van de verklaring "Programma voltooid"

Geneste lussen

De lusinstructies kunnen ook worden genest. De buitenste en binnenste lus kunnen van verschillende typen zijn. In de geneste lus wordt voor elke iteratiewaarde van de buitenste lus de binnenste lus volledig uitgevoerd.

LOOP -outerLOOP - innerEND LOOP;END LOOP;
Syntaxis Uitleg:
  • In de bovenstaande syntaxis heeft de buitenste lus nog een lus erin.
  • De lussen kunnen van elk type zijn en het deel van de uitvoeringsfunctionaliteit is hetzelfde.

Voorbeeld 1 : In dit voorbeeld gaan we een nummer afdrukken van 1 tot 3 met behulp van de FOR-lusinstructie. Elk nummer wordt zo vaak afgedrukt als de waarde ervan. Daarvoor voeren we de volgende code uit.

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

Code Verklaring:

  • Coderegel 2 : de variabele 'b' declareren als 'NUMBER' datatype.
  • Coderegel 4 : Afdrukken van het statement "Programma gestart".
  • Coderegel 5: Sleutelwoord 'FOR' markeert het begin van de lus en loop_variable 'a' wordt gedeclareerd. Het heeft nu de waarde beginnend van 1 tot 3
  • Coderegel 7: De waarde van 'b' elke keer opnieuw instellen op '1'.
  • Coderegel 8: Inner while-lus controleert op voorwaarde a> = b.
  • Coderegel 10: drukt de waarde van 'a' af zolang aan de bovenstaande voorwaarde wordt voldaan.
  • Coderegel 14: Afdrukken van de verklaring "Programma voltooid"

Overzicht

Lus For loop
EXIT-criteria Sluit af als de teller de limiet bereikt
Gebruik Goed te gebruiken wanneer het aantal uit te voeren lussen bekend is.