CASE |
"case"permet de réaliser une structure de contrôle alternative en fonction de lavaleur d'une expression donnée.
Case expr_choix
{ When expr_v { , expr_v } [ : ]
instructions exécutées si
[ instructions ] l'expression expr_choix prend
l'une des valeurs de la liste
des expressions expr_v .
}
[ When Default [ : ]
instructions exécutées si
[ instructions ] l'expression expr_choix
n'a pris aucune des valeurs
des expressions expr_v .
]
Endcase
# Selon la valeur de CHOIX, on fera une action particulière
# Si choix vaut "R", rien n'est fait
Case 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
Au plus une alternative est exécutée (un "
Aucune instruction ne peut être placée entre le "
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êmechoix pour une série de valeurs, il faut mettre cette série dans une seuleliste précédée d'un "when".
ERMODE (10) | L'expressionexpr_v est d'un type non comparable à expr_choix. |
AdonixX3(r) L4G |