:WHILE... :ENDWHILE
Die :WHILE-Script-Anweisung definiert eine Schleife. Verwenden Sie einen :WHILE-Block, wenn Sie Teile eines Scripts mehrmals ausführen müssen, bis eine Bedingung nicht mehr erfüllt ist.
Während eine bestimmte Bedingung zutrifft, durchläuft das:WHILE-Statement einen Prozess im Script. Die Bedingung ist ein logischer Ausdruck, der entweder ein wahres oder ein falsches Ergebnis liefert. Wenn die Bedingung wahr ist, werden die Statements in der Schleife verarbeitet. Die Bedingung wird neu bewertet und wenn die Bedingung noch wahr ist, werden die Statements erneut verarbeitet. Dieser Prozess wiederholt sich, bis die Bedingung nicht mehr wahr ist. In diesem Fall endet die Schleife und das Script fährt mit der Zeile fort, die auf das :ENDWHILE-Statement folgt.
Syntax
:WHILE condition
[statements]
:ENDWHILE
Parameter
- :WHILE
Startet einen Bedingungsblock - condition
Ausdruck, der die Bedingung definiert, dass der Block weiterverarbeitet wird
Format: Script-Literale, Script-Variablen, Script-Funktionen oder numerische Ausdrücke, die als wahr oder falsch bewertet werden - statements
Eine oder mehrere Script-Statements, die verarbeitet werden, während die Bedingung wahr ist
Format: Script-Statement - :ENDWHILE
Beendet den Bedingungsblock
Hinweise:
- Um Endlosschleifen zu vermeiden, müssen Sie eine Abbruchbedingung einfügen.
- Sie können eine unbegrenzte Anzahl von :WHILE-Blöcken verschachteln.
- Eine Bedingung kann bis zu 13 OR-Operatoren beinhalten.
- Script-Variablen können je nach deklariertem Datentyp Zahlen oder Zeichenketten beinhalten. Numerische Variablen werden in Vergleichen wie Zahlen behandelt, auch wenn Sie Anführungszeichen verwenden. Nicht-numerische Werte werden alphanumerisch verglichen.
Verwenden Sie die folgende Struktur, um Bedingungen zu schreiben:
Wert Vergleichswert Vergleichswert [OR Vergleichswert...]
Die folgenden Vergleichsoperatoren stehen für Bedingungen zur Verfügung:
- = oder EQ
Der Ausdruck ist wahr, wenn mindestens einer der Vergleichswerte gleich Wert ist - <> oder NE
Der Ausdruck ist wahr, wenn keiner der Vergleichswerte gleich Wert ist. - < oder LT
Der Ausdruck ist wahr, wenn einer der Vergleichswerte die definierte Bedingung erfüllt. - > oder GT
Der Ausdruck ist wahr, wenn einer der Vergleichswerte die definierte Bedingung erfüllt. - <= oder LE
Der Ausdruck ist wahr, wenn einer der Vergleichswerte die definierte Bedingung erfüllt. - >= oder GE
Der Ausdruck ist wahr, wenn einer der Vergleichswerte die definierte Bedingung erfüllt.
Beispiele
Die folgende Bedingung ist wahr:
:WHILE "0" = "0"
Die folgende Bedingung ist falsch:
:WHILE "0" = "abc"
Beim Vergleich von Zeichenfolgen wird nicht deren Länge geprüft. Die folgende Bedingung ist wahr, da S im Alphabet vor W steht:
:WHILE "Smith" < "Wilson"
Das folgende Script-Statement definiert eine Bedingung, die erfordert, dass eine Variable einen von zwei möglichen Werten hat, um wahr zu sein. Wenn die Bedingung wahr ist, werden die Zeilen des :WHILE-Blockscripts verarbeitet.
:WHILE &ABT# = "EDP" OR "AE"
Das Beispiel erfragt vom Benutzer einen Namen und eine Abteilung. Die Abfrage wird solange wiederholt, bis der Benutzer einen Namen eingegeben hat, der nicht sein eigener ist.
:SET &REPEAT# = "Y"
:WHILE &REPEAT# = "Y"
:SET &DEP# = SYS_USER_DEP()
:SET &NAME# = SYS_USER_NAME()
:BEGINREAD
: READ &DEP#, "08" ,"Please enter a department", &DEP#, "M"
: READ &NAME#, "08", "Please enter a name", &NAME#, "M"
:ENDREAD
:IF SYS_LAST_ERR_NR() <> 0
: STOP
:ELSE
: IF SYS_USER_NAME() = &NAME#
: SET &REPEAT# = "Y"
: SET_LAST_ERR 10006, "Please enter a name that is not your own name"
: ELSE
: SET &REPEAT# = "N"
: ENDIF
:ENDIF
:ENDWHILE
Siehe auch: