:WHILE... :ENDWHILE
L'instruction de script :WHILE définit une boucle. Utilisez un bloc :WHILE lorsque des parties de script doivent être exécutées plusieurs fois jusqu'à ce qu'une condition ne soit plus remplie.
Tant qu'une condition s'applique, l'instruction :WHILE met un processus en boucle dans le script. La condition est une expression logique qui donne un résultat vrai ou faux. Tant qu'une condition est vraie, les instructions de la boucle sont traitées. La condition est ré-évaluée et si elle est toujours vraie, les instructions sont de nouveau traitées. Ce processus se répète jusqu'à ce que la condition ne soit plus vraie, auquel cas la boucle se termine et le script passe à la ligne suivant l'instruction :ENDWHILE.
Syntaxe
:WHILE condition
[statements]
:ENDWHILE
Paramètres
- :WHILE
Lance un bloc conditionnel - condition
Expression définissant la condition pour que le bloc continue à être traité
Format : littéral de script, variable de script, fonction de script ou expression numérique analysant le vrai ou le faux - statements
Une ou plusieurs instructions de script exécutées tant que la condition est vraie
Format : instruction de script - :ENDWHILE
Termine le bloc conditionnel
Remarques :
- Vous devez inclure une condition de fin pour empêcher les boucles sans fin.
- Vous pouvez imbriquer un nombre illimité de blocs :WHILE.
- Une condition peut contenir jusqu'à 13 opérateurs OR.
- Les variables de scripts peuvent contenir des nombres ou des chaînes de caractères selon le type de données déclaré. Les variables numériques sont traitées comme des nombres dans des comparaisons, même si vous utilisez des guillemets. Les valeurs non numériques sont comparées de manière alphanumérique.
Pour écrire des conditions, utilisez la structure suivante :
Valeur Opérateur de comparaison Valeur de comparaison [OR Valeur de comparaison...]
Les opérateurs de comparaison proposés pour les conditions sont les suivants :
- = ou EQ
L'expression est vraie lorsqu'au moins une valeur de comparaison est égale à la valeur. - <> ou NE
L'expression est vraie lorsqu'aucune valeur de comparaison n'est égale à la valeur. - < ou LT
L'expression est vraie lorsqu'une valeur de comparaison remplit la condition définie. - > ou GT
L'expression est vraie lorsqu'une valeur de comparaison remplit la condition définie. - <= ou LE
L'expression est vraie lorsqu'une valeur de comparaison remplit la condition définie. - >= ou GE
L'expression est vraie lorsqu'une valeur de comparaison remplit la condition définie.
Exemples
La condition suivante est vraie :
:WHILE "0" = "0"
La condition suivante est fausse :
:WHILE "0" = "abc"
La longueur n'a pas d'importance lorsque vous comparez des chaînes de caractères. La condition suivante est vraie car S précède W dans l'alphabet :
:WHILE "Smith" < "Wilson"
L'instruction de script suivante définit une condition exigeant qu'une variable ait l'une des deux valeurs possibles pour être vraie. Si la condition est vraie, les lignes de script du bloc :WHILE sont traitées.
:WHILE &ABT# = "EDP" OR "AE"
Dans l'exemple suivant, le système demande un nom et un département à l'utilisateur. Cette requête est répétée jusqu'à ce que l'utilisateur indique un nom autre que le sien.
: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
Voir aussi :