Instruction ST : CASE
L'instruction CASE est une structure de contrôle conditionnelle qui provoque l'exécution d'une instruction ou d'une section d'instruction uniquement sous une condition spécifique. La section exécutée est déterminée en comparant la condition et l'étiquette.
Syntaxe:
CASE <condition> OF <label-1> : <instruction-1> <label-2> : <instruction-2> <label-3, label-4, label-5> : <instruction-3> <label-6 .. labe-10> : <instruction-4> <label-n> : <instruction-n> ELSE <ELSE-instruction> END_CASE
| Variable entière pour la condition Exemple: La valeur des variables est comparée aux étiquettes déclarées dans la construction. N'importe quel nombre d'étiquettes (minimum : 2) peut être utilisé dans une instruction CASE. Sinon, la construction peut être affichée plus clairement avec une construction IF-THEN-ELSE. Toutes les étiquettes doivent avoir des valeurs différentes. |
| Expression constante, littérale ou constante avec le même type de données que la condition Agit comme une étiquette (cible de saut) dans la construction CASE. Exemple : Si cette valeur est égale à condition, alors les instructions suivantes sont parcourues. Si cette valeur n'est pas égale à condition, l'instruction correspondante est ignorée et le système passe à l'étiquette suivante. |
| Liste séparée par des virgules avec plusieurs étiquettes qui agissent comme des cibles de saut Exemple : Si l'une des étiquettes correspond à la condition condition, puis la section suivante est parcourue. |
| Plage avec étiquette de limite inférieure et supérieure
Si l'état condition prend une valeur comprise dans la plage allant de étiquette-n1 à étiquette-n2, puis la section suivante est parcourue. |
| Facultatif, maximum une fois Cible de saut par défaut vers laquelle sauter si toutes les étiquettes précédentes ne pas correspondre à la condition. |
| Instruction ou segment d'instruction composé de plusieurs instructions Une instruction se termine toujours par un point-virgule ( |
CASE iCondition OF 1, 5, c_ONE, C_TWO: bVar1 := TRUE; bVar3 := FALSE; 2: bVar2 := FALSE; bVar3 := TRUE; 10..20: bVar1 := TRUE; bVar3 := TRUE; ELSE bVar1 := NOT bVar1; bVar2 := bVar1 OR bVar2; END_CASE