"case" permet de réaliser une structure de contrôle alternative en fonction de la valeur d'une expression donnée.
Caseexpr_choix
{ When expr_v { , expr_v } [ : ]
instructions exécutées si[ instructions ] l'expression expr_choix prend
l'une des valeurs de la listedes expressions expr_v.
}[ When Default [ : ]
instructions exécutées si[ instructions ] l'expression expr_choix
n'a pris aucune des valeursdes expressions expr_v.
]Endcase
Elément | Description | Restrictions |
expr_choix | Expression dont la valeur permet de choisir une alternative. | Aucune. |
expr_v | Expression dont la valeur est comparée à celle de expr_choix. | Du même type que expr_choix. |
# Selon la valeur de CHOIX, on fera une action particulière
# Si choix vaut "R", rien n'est faitCase toupper(CHOIX)
When "A","E" : Gosub EFFACEMENT When "Q","F" : Goto FIN When "R" When "M" : Gosub MODIFICATION When Default Gosub AIDE Endcase # Alternative sur l'expression date$ qui est comparée à # d'autres variables ou à des expressions complexes #Case date$
When [29/05/1959] Infbox "C'est ma date de naissance" Gosub ANNIVERSAIRE When [18/06/1944],[08/05/1945],[11/11/1918] Infbox "C'est une date historique" Gosub COMMEMORATION When DATE_LIMITE+DELAI_GRACE Infbox "Il faut payer les impôts avant ce soir !" Gosub PERCEPTEUR When Default Infbox "Rien de particulier aujourd'hui" Endcase
Case permet de réaliser des alternatives au sein d'un traitement, et ce en fonction de la valeur d'une expression qui peut être comparée à des listes de valeurs.
Au plus une alternative est exécutée (un "case" équivaut à une structure If ... Elsif ... Else ... Endif). En l'absence de clause When Default, et si aucune valeur ne correspond à l'expression, aucune instruction délimitée par le "case" ne sera exécutée.
Aucune instruction ne peut être placée entre le "case" et le premier "when" (pas même un commentaire).
Lorsqu'un "when" n'est suivi d'aucune instruction avant le "when" suivant, cela veut dire qu'il n'y a pas d'action à effectuer, contrairement à certains langages tels le C. Pour exécuter un même choix pour une série de valeurs, il faut mettre cette série dans une seule liste précédée d'un "when".