: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: