:WHILE... :ENDWHILE
Die Script-Anweisung :WHILE 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 die :WHILE-Anweisung 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 Anweisungen in der Schleife verarbeitet. Die Bedingung wird neu bewertet, und wenn sie weiterhin wahr ist, werden die Anweisungen 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 die :ENDWHILE-Anweisung folgt.
Syntax
: WHILE Bedingung
[Anweisungen]
:ENDWHILE
Parameter
-
:WHILE
Startet einen Bedingungsblock -
Bedingung
Ausdruck, der die Bedingung festlegt, unter der der Block weiterhin verarbeitet wird
Format: Script-Literale, Script-Variablen, Script-Funktionen oder numerische Ausdrücke, die als wahr oder falsch ausgewertet werden. -
Anweisungen
Eine oder mehrere Script-Anweisungen, die verarbeitet werden, während die Bedingung wahr ist
Format:Script-Anweisung -
: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 Strings 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 Vergleichsoperator 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 Strings wird nicht deren Länge geprüft. Die folgende Bedingung ist wahr, da S im Alphabet vor W steht:
: WHILE "Smith" < "Wilson"
Die folgende Script-Anweisung 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 Script-Zeilen des :WHILE-Blocks 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" , "Bitte geben Sie eine Abteilung ein" , &DEP# , "M"
: READ &NAME# , "08" , "Bitte geben Sie einen Namen ein" , &NAME# , "M"
: ENDREAD
: IF SYS_LAST_ERR_NR () <> 0
: STOP
: ELSE
: IF SYS_USER_NAME () = &NAME#
: SET &REPEAT# = "Y"
: SET_LAST_ERR 10006, "Bitte geben Sie einen anderen Namen als Ihren Namen ein"
: ELSE
: SET &REPEAT# = "N"
: ENDIF
: ENDIF
: ENDWHILE
Siehe auch: