:IF... :ELSE... :ENDIF
Les instructions de script :IF et :ENDIF vous permettent de créer un bloc conditionnel dans votre script. Le script analyse une expression et exécute les instructions écrites dans le bloc dès qu'une certaines condition est remplie. Si la condition n'est pas remplie, soit le script continue avec la ligne suivant le bloc conditionnel, soit il exécute des instructions :ELSE, le cas échéant.
Syntaxe
:IF Condition
[Statements]
[:ELSE]
[Other Statements]
:ENDIF
Paramètres
- :IF
Lance un bloc conditionnel - Condition
Expression mathématique qui détermine s'il faut exécuter les instructions du bloc conditionnel
Format : littéral de script, variable de script, fonction de script ou nombre avec comme résultats possible vrai ou faux - Statements
Une ou plusieurs instructions de script à exécuter lorsque la condition est vraie
Format : instruction de script - :ELSE
Lance une branche qui s'exécute lorsque la condition est fausse - Other Statements
Une ou plusieurs instructions de script à exécuter lorsque la condition est fausse
Format : instruction de script
Remarques :
-
Vous devez définir les variables de script que vous utilisez dans une condition avant le bloc conditionnel.
-
Utilisez le mot-clé OR pour relier une condition à plusieurs valeurs ou pour relier plusieurs conditions. Les conditions OR s'écrivent selon la structure suivante :
Valeur Opérateur de comparaison Valeur de comparaison [OR Valeur de comparaison...]
Exemple : :IF &DEP# = "EDP" OR "AE" -
Vous pouvez ainsi utiliser jusqu'à 13 OR dans une Condition.
-
Vous n'avez pas à inclure des instructions :ELSE.
-
Vous pouvez imbriquer un nombre illimité de blocs :IF.
-
Les espaces vides de terminaison ne sont pas pris en compte dans les comparaisons de chaînes. Par conséquent, les chaînes vides sont toujours égales, indépendamment de leur longueur.
-
Les zéros non significatifs ne sont ignorés que dans les comparaisons numériques.
Important ! L'instruction :IF ne fait aucune différence dans les caractères au-delà des 1024 premiers caractères d'une chaîne.
La formulation d'une condition contient l'un des opérateurs de comparaison suivants :
Opérateur |
Abréviation |
Règle |
---|---|---|
= |
EQ |
L'expression est vraie lorsqu'au moins une valeur de comparaison correspond à la valeur. |
<> |
NE |
L'expression est vraie lorsqu'aucune valeur de comparaison n'est égale à la valeur. |
< |
LT |
L'expression est vraie lorsqu'une valeur de comparaison correspond à la condition définie. |
> |
GT |
|
<= |
LE |
|
>= |
GE |
Exemples
:set &a= 'a '
:set &b= 'a'
:if &a = &b
:print 'true'
:endif
Une comparaison numérique a lieu lorsque deux valeurs de comparaison d'une condition ont une valeur numérique (données de type "signed", "unsigned" ou "float"). Dans tous les autres cas, c'est une comparaison de chaînes qui a lieu.
La condition suivante est vraie :
:IF "0" = "0"
Une comparaison alphanumérique a lieu lorsqu'il n'y a aucune valeur numérique.
La condition suivante est fausse :
:IF "0" = "abc"
Les longueurs de scripts ne sont pas vérifiées pendant le processus de comparaison. La condition suivante est vraie car S précède U dans l'alphabet :
:IF "Smith" < "UX"
Dans les conditions incluant plusieurs mot-clés OR, le comportement dépend de l'opérateur.
Dans l'exemple suivant, l'une des valeurs doit s'appliquer pour remplir la condition.
:IF&WD# = "MON" OR "TUE" OR "WED"
La condition suivante n'est remplie que si la variable ne correspond à aucune des trois valeurs.
:IF&WD# <> "THU" OR "FRI" OR "SAT"
Voir aussi :