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.
FORSyntaxis Uitleg:in … LOOP … END LOOP;
- 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 -outerSyntaxis Uitleg:LOOP - inner END LOOP; END LOOP;
- 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. |