Anwendungsgebiet: PROCEDURE
Kommandobeschreibung
Das Kommando CYCLE kann in Schleifenblöcken (FOR-, WHILE-, REPEAT-Block) aufgerufen werden. Es bricht dann den aktuellen Schleifendurchlauf ab und setzt den Prozedurlauf mit der Ausführung des Abschlusskommandos des Schleifenblocks (END-FOR, END-WHILE, UNTIL) fort. Anschließend wird die Schleifenbedingung erneut überprüft und wenn nötig, der nächste Schleifendurchlauf gestartet. Zu CYCLE siehe auch Abschnitt „Sprung ans Schleifenende“.
Die Ausführung des Kommandos CYCLE kann von einer Bedingung abhängig gemacht werden.
Hinweis
Im Kommando ist keine Ausdruckersetzung (&....) möglich.
Format
CYCLE |
BLOCK = *LAST / *ALL / <structured-name 1..255> ,CONDITION = *NONE / <text 1..1800 with-low bool-expr> |
Operandenbeschreibung
BLOCK =
Bezeichnet die Schleife bzw. den Schleifenblock.
BLOCK = *LAST
Bezeichnet den unmittelbar umgebenden Schleifenblock; der Prozedurlauf wird mit dem nächsten Schleifen-Abschlusskommando fortgesetzt.
BLOCK = *ALL
Bezeichnet bei geschachtelten Schleifen den äußersten Schleifenblock; der Prozedurlauf wird mit dem letzten Schleifen-Abschlusskommando fortgesetzt.
BLOCK = <structured-name 1..255>
Name der Schleife, die abgebrochen wird; der Schleifenname entspricht der Marke im Kommandoaufruf des Schleifen-Einleitungskommandos.
CONDITION =
Beschreibt eine Bedingung für die Ausführung des CYCLE-Kommandos.
CONDITION = *NONE
Das Kommando wird immer ausgeführt.
CONDITION = <text 1..1800 with-low bool-expr>
Das CYCLE-Kommando wird nur ausgeführt, wenn der angegebene boolsche Ausdruck den Wert „TRUE“ ergibt.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | CMD0202 | Syntaxfehler | |
1 | SDP0118 | Kommando im falschen Kontext | |
1 | SDP0223 | Falsche Umgebung | |
3 | CMD2203 | Falsche Syntaxdatei | |
32 | CMD0221 | Systemfehler (interner Fehler) | |
64 | SDP0091 | Semantikfehler (unkorrekter Ausdruck) | |
130 | SDP0099 | Kein Adressraum mehr verfügbar |
Beispiel
Beispiel 1
/LOOP: WHILE (BED < 9) : : /IF (EING='*SKIP') /WR-TEXT 'Element wird übergangen' /CYCLE BLOCK=LOOP /END-IF : : /END-WHILE "Dieses Kommando wird nach CYCLE ausgefuehrt"
Beispiel 2
/J=0 /FOR I=('Zeile 1','Zeile 2','Zeile 3','Zeile 4) /J=J+1 /CYCLE BLOCK=*LAST,CONDITION=(J=3) /SHOW-VARIABLE I /END-FOR
Ausgabe:
I = Zeile 1 I = Zeile 2 I = Zeile 4
Das dritte Element der Liste (I=3) wird nicht ausgegeben, d.h. der Schleifendurchlauf wird beendet und der Prozedurlauf bei END-FOR fortgesetzt.