Oracle PL/SQL FOR LOOP mit Beispiel
Was ist eine For-Schleife?
Die „FOR LOOP“-Anweisung eignet sich am besten, wenn Sie einen Code für eine bestimmte Anzahl von Malen ausführen möchten, anstatt auf anderen Bedingungen zu basieren.
In dieser Schleife werden die Untergrenze und die Obergrenze angegeben und solange die Schleifenvariable innerhalb dieses Bereichs liegt, wird die Schleife ausgeführt.
Die Schleifenvariable ist selbstinkrementell, daher ist in dieser Schleife kein expliziter Inkrementvorgang erforderlich. Die Schleifenvariable muss nicht deklariert werden, da sie implizit deklariert wird.
FOR <loop_variable> in <lower_limit> .. <higher_limit> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
Syntaxerklärung:
- In der obigen Syntax markiert das Schlüsselwort „FOR“ den Anfang 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 Schleifenvariable wird implizit während der Ausführung der gesamten Schleife deklariert und der Gültigkeitsbereich dieser Schleifenvariablen liegt 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 drucken wir Zahlen von 1 bis 5 mithilfe einer FOR-Schleifenanweisung. Dazu führen wir den folgenden Code aus.
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; /
Code-Erklärung:
- Codezeile 2: Ausdruck der Aussage „Programm gestartet“.
- Codezeile 3: Das Schlüsselwort „FOR“ markiert den Anfang der Schleife und die Schleifenvariable „a“ wird deklariert. Der Wert liegt jetzt zwischen 1 und 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: Ausdrucken der Aussage „Programm abgeschlossen“
Verschachtelte Schleifen
Die Schleifenanweisungen können auch verschachtelt sein. Die äußere und innere Schleife können unterschiedlicher Art sein. In der verschachtelten Schleife wird für jeden Iterationswert der äußeren Schleife die innere Schleife vollständig ausgeführt.
LOOP -outer <execution block starts> LOOP — inner <execution_part> END LOOP; <execution_block_ends> END LOOP;
Syntaxerklärung:
- In der obigen Syntax enthält die äußere Schleife eine weitere Schleife.
- Die Schleifen können von beliebigem Typ sein und die Ausführungsfunktionalität ist identisch.
Beispiel 1: In diesem Beispiel drucken wir Zahlen von 1 bis 3 mithilfe einer FOR-Schleifenanweisung. Jede Zahl wird so oft gedruckt, wie ihr Wert ist. Dazu führen wir den folgenden Code aus.
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; /
Code-Erklärung:
- Codezeile 2: Deklaration der Variablen „b“ als Datentyp „NUMBER“.
- Codezeile 4: Ausdruck der Aussage „Programm gestartet“.
- Codezeile 5: Das Schlüsselwort „FOR“ markiert den Anfang der Schleife und die Schleifenvariable „a“ wird deklariert. Der Wert liegt jetzt zwischen 1 und 3
- Codezeile 7: Der Wert von „b“ wird jedes Mal auf „1“ zurückgesetzt.
- 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: Ausdrucken der Aussage „Programm abgeschlossen“
Zusammenfassung
Loop | FOR-Schleife |
---|---|
Abbruchkriterium | Verlassen Sie den Vorgang, wenn der Zähler das Limit erreicht |
Anwendungsbereich | Gut zu verwenden, wenn die Anzahl der auszuführenden Schleifen bekannt ist. |