SELECT CASE |
Sélection de cas |
---|---|
QuickBASIC/QBasic |
Syntaxe
SELECT CASE exprTest CASE listeExpr1 [blocInstr-1] [CASE listeExpr2 [blocInstr-2]]... [CASE ELSE [blocInstr-n]] END SELECT |
Paramètres
Nom | Description |
---|---|
exprTest | Ce paramètre permet d'indiquer l'expression à tester le résultat |
listeExpr1 | Ce paramètre permet d'indiquer la valeur avec lequel le résultat doit être comparer |
blocInstr | Ce paramètre permet d'indiquer les instructions à exécuter si la condition est vrai |
blocInstr-n | Ce paramètre permet d'indiquer les instructions à exécuter si la condition est fausse |
Description
Cette instruction permet de définir une liste de conditionnels ayant comme point de comparaison un même résultat.
Remarques
- Les éléments de listeExpr1 peuvent avoir l'un des trois formats suivants :
- Si vous utilisez le mot clef TO pour indiquer un intervalle de valeurs, la valeur la plus petite doit apparaître en premier. Par exemple, les instructions associées à la ligne CASE -1 TO -5 ne sont pas exécutées si l'expression test est -4. La ligne doit être écrite comme CASE -5 TO -1.
- Vous ne pouvez utiliser un opérateur relationnel que si le mot clef IS apparaît. Si CASE ELSE est utilisé, ses instructions associées ne sont exécutées que si l'expression test ne correspond à aucune des autres sélections CASE. Il est judicieux d'avoir une instruction CASE ELSE dans votre bloc SELECT CASE pour gérer les valeurs d'expressions de test imprévues.
- Lorsqu'il n'y a aucune instruction CASE ELSE et qu'aucune expression répertoriée dans les clauses CASE ne correspond à exprTest, l'exécution du programme se poursuit normalement. Aucune erreur ne se produit.
- Vous pouvez utiliser plusieurs expressions ou intervalles dans chaque clause CASE. Par exemple, la ligne suivante est valide :
- Les instructions SELECT CASE peuvent être imbriquées. Chaque instruction SELECT CASE doit avoir une instruction END SELECT correspondante.
expression[,expression...] |
expression TO expression |
IS relational-operator expression |
La liste suivante décrit les parties d'une liste d'expression du paramètre listeExpr1 :
Paramètre | Description | |
---|---|---|
expression | Ce paramètre permet d'indiquer toute expression numérique ou chaîne de caractères. Le type de l'expression doit correspondre au type de l'expression test. | |
relational-operator | Ce paramètre permet d'indiquer l'un des opérateurs suivants : | |
Symbole | Description | |
< | Inférieur à | |
<= | Inférieur ou égal à | |
> | Supérieur à | |
>= | Supérieur ou égal à | |
<> | Pas égal | |
= | Égal |
Si exprTest correspond à la liste d'expressions associée à une clause CASE, alors le bloc d'instructions suivant cette clause CASE est exécuté jusqu'à la clause CASE suivante ou, pour la dernière, jusqu'à END SELECT. Le contrôle passe ensuite à l'instruction suivant END SELECT.
CASE 1 TO 4, 7 TO 9, 11, 13, IS > MaxNumber%
Vous pouvez également spécifier des intervalles et plusieurs expressions pour les chaînes de caractères :
CASE "tous", "noix" TO "soupe", TestItem$
La sélection CASE correspond aux chaînes de caractères étant exactement égales à tout, à la valeur actuelle de TestItem$, ou se situant entre les noix et la soupe dans l'ordre alphabétique. Les chaînes de caractères sont évaluées en fonction des valeurs ASCII de leurs caractères. Les lettres minuscules ont des valeurs ASCII plus grandes que les majuscules, par conséquent :
noix > Noix > NOIX |
Si une expression apparaît dans plusieurs clauses CASE, seules les instructions associées à la première apparition de l'expression sont exécutées.
Exemple
Voici un exemple une utilisation typique de cette instruction :
on obtiendra le résultat suivant :
Entre 1 et 3Voir également
Langage de programmation - QuickBASIC/QBasic - Référence de procédures et de fonctions - IF...THEN...ELSE
Langage de programmation - QuickBASIC/QBasic - Les instructions conditionnels
Langage de programmation - ASP 3.0 - Référence de procédures et fonctions - SELECT CASE