Le contrôle conditionnel If
L'instruction IF permet de décider si exécuter un bloc de code. La décision a origine du contrôle d'une expression relationnelle, c'est-à-dire une expression qui retourne toujours un résultat booléen TRUE ou FALSE. La syntaxe est la suivante:
- If (ExpressionRelationnelle)
- Instruction1...
- Instruction2...
- EndIf
ExpressionRelationnelle représente la relation entre opérandes dôù il est retourné un résultat booléen. Si le résultat est TRUE, le bloc de code situé entre If et EndIf est exécuté. Le mot clé "EndIf" ferme toujours le bloc de code ouvert par If. Si l'expression retourne FALSE, l'exécution saute aux instructions qui suivent "EndIf".
Par exemple:
- x = 10
- If x > 5
- Circle(50,50,30)
- EndIf
Nous avons défini une variable de nom "x". Le bloc If est exécuté seulement si "x" est supérieur à 5. Vu que la variable contient 10, il est donc dessiné un cercle.
Une instruction if peut être accompagnée par une instruction ELSE. ELSE permet d'utiliser les deux états de l'expression booléenne de départ, car elle délimite le bloc de code exécuté au cas où la condition est FALSE.
- If (ExpressionRélationnelle)
- Instruction1...
- Instruction2...
- Else
- Instruction3...
- Instruction4...
- EndIf
Si l'expression retourne la valeur TRUE il est exécuté le bloc IF composé par l'instruction 1 et 2, autrement l'interprète exécute le bloc de code composé par l'instruction 3 et 4.
Par exemple:
- x = 10
- If x > 5
- Circle(50,50,30)
- Else
- Square(20,20,30)
- EndIf
Dans cet exemple, si la variable "x" est supérieur à 5 il est dessiné un cercle, autrement s'il est inférieur ou égale à 5 il est dessiné un carré (l'instruction contenue dans le bloc ELSE).
Dans une instruction IF ou IF ELSE il peut y avoir un'autre instruction IF. Dans ce cas particulier nous sommes en présence de IF nichés.
- If (ExpressionRélationnelle)
- Instruction1...
- Instruction2...
- If (ExpressionRélationnelle2)
- Instruction5...
- EndIf
- Else
- Instruction3...
- Instruction4...
- EndIf
Les conditions IF peuvent être utilisées enchaînés par l'utilisation de l'instruction spéciale ELSEIF. Dans ce type particulier d'enchaînement on évalue plusieurs expressions rélationnelles en avançant en chaîne, du haut vers le bas. Si une des conditions est TRUE alors il est exécuté le bloc relatif de code. Autrement, s'il est présent , il est exécuté le bloc de code ELSE final.
- If (ExpressionRélationnelle1)
- Instruction1...
- Instruction2...
- ElseIf (ExpressionRélationnelle2)
- Instruction3...
- Instruction4...
- ElseIf (ExpressionRélationnelle3)
- Instruction5...
- Instruction6...
- Else
- Instruction7...
- Instruction8...
- EndIf
Si l'expression1 est TRUE il est exécuté le bloc des instructions 1 et 2, autrement si l'expression2 est TRUE il est exécuté le bloc des instructions 3 et 4, autrement si l'expression3 est TRUE il est exécuté le bloc des instructions 5 et 6, autrement le bloc de code Else final constitué par les instructions 7 et 8.