Was ist For Loop?
Die Anweisung "FOR LOOP" eignet sich am besten, wenn Sie einen Code für eine bekannte Anzahl von Malen ausführen möchten, anstatt auf anderen Bedingungen zu basieren.
In dieser Schleife werden die Untergrenze und die Obergrenze angegeben. Solange sich die Schleifenvariable zwischen diesem Bereich befindet, wird die Schleife ausgeführt.
Die Schleifenvariable ist selbstinkremental, sodass in dieser Schleife keine explizite Inkrementierungsoperation erforderlich ist. Die Schleifenvariable muss nicht deklariert werden, da sie implizit deklariert wird.
FORSyntax Erläuterung:in … LOOP … END LOOP;
- In der obigen Syntax markiert das Schlüsselwort 'FOR' den Beginn der Schleife und 'END LOOP' das Ende der Schleife.
- Die Schleifenvariable wird jedes Mal ausgewertet, bevor der Ausführungsteil ausgeführt wird.
- Der Ausführungsblock enthält den gesamten Code, der ausgeführt werden muss. Der Ausführungsteil kann eine beliebige Ausführungsanweisung enthalten.
- Die loop_variable wird während der Ausführung der gesamten Schleife implizit deklariert, und der Bereich dieser loop_variable befindet sich nur innerhalb dieser Schleife.
- Wenn die Schleifenvariable außerhalb des Bereichs liegt, verlässt die Steuerung die Schleife.
- Die Schleife kann in umgekehrter Reihenfolge ausgeführt werden, indem das Schlüsselwort 'REVERSE' vor lower_limit hinzugefügt wird.
Beispiel 1 : In diesem Beispiel werden wir mit der FOR-Schleifenanweisung eine Zahl von 1 bis 5 drucken. Dazu führen wir den folgenden Code aus.
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 Erläuterung:
- Codezeile 2 : Drucken der Anweisung "Programm gestartet".
- Codezeile 3: Das Schlüsselwort 'FOR' markiert den Beginn der Schleife und die Schleifenvariable 'a' wird deklariert. Der Wert beginnt jetzt bei 1 bis 5
- Codezeile 5: Gibt den Wert von 'a' aus.
- Codezeile 6: Das Schlüsselwort 'END LOOP' markiert das Ende des Ausführungsblocks.
- Der Code aus Zeile 5 wird so lange ausgeführt, bis 'a' den Wert 6 erreicht, da die Bedingung fehlschlägt und die Steuerung die Schleife verlässt.
- Codezeile 7: Drucken der Anweisung "Programm abgeschlossen"
Verschachtelte Schleifen
Die Schleifenanweisungen können auch verschachtelt werden. Die äußere und innere Schleife können von verschiedenen Typen sein. In der verschachtelten Schleife wird für jeden Iterationswert der äußeren Schleife die innere Schleife vollständig ausgeführt.
LOOP -outerSyntax Erläuterung:LOOP - inner END LOOP; END LOOP;
- In der obigen Syntax enthält die äußere Schleife eine weitere Schleife.
- Die Schleifen können von einem beliebigen Typ sein und der Teil der Ausführungsfunktionalität ist der gleiche.
Beispiel 1 : In diesem Beispiel werden wir die Nummer 1 bis 3 mit der FOR-Schleifenanweisung drucken. Jede Zahl wird so oft gedruckt wie ihr Wert. Dazu führen wir den folgenden Code aus.
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 Erläuterung:
- Codezeile 2 : Deklarieren der Variablen 'b' als Datentyp 'NUMBER'.
- Codezeile 4 : Drucken der Anweisung "Programm gestartet".
- Codezeile 5: Das Schlüsselwort 'FOR' markiert den Beginn der Schleife und die Schleifenvariable 'a' wird deklariert. Der Wert beginnt jetzt bei 1 bis 3
- Codezeile 7: Setzen Sie den Wert von 'b' jedes Mal auf '1' zurück.
- Codezeile 8: Innere while-Schleife prüft auf die Bedingung a> = b.
- Codezeile 10: Gibt den Wert von 'a' aus, solange die obige Bedingung erfüllt ist.
- Codezeile 14: Drucken der Anweisung "Programm abgeschlossen"
Zusammenfassung
Schleife | FOR-Schleife |
Abbruchkriterium | Beenden Sie, wenn der Zähler das Limit erreicht |
Verwendung | Gut zu verwenden, wenn die auszuführende Schleifenzahl bekannt ist. |