Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

CYCLE Schleifendurchlauf abbrechen

&pagelevel(4)&pagelevel

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


0CMD0001Ohne Fehler

1CMD0202Syntaxfehler

1SDP0118Kommando im falschen Kontext

1SDP0223Falsche Umgebung

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64SDP0091Semantikfehler (unkorrekter Ausdruck)

130SDP0099Kein 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.