|
L'instruction
SELECT CASE
est assez pratique. Elle n'est qu'une redéfinition de
l'instruction IF...THEN...ELSE,
mais présente l'avantage d'être beaucoup plus simple
dans certains cas.
Par exemple:
| J'ai
la note X à un contrôle. |
| cas
X<=5 |
alors
C'est nul. |
| cas
5<X<10 |
alors
Ce n'est pas bien. |
| cas
10<=X<15 |
alors
Tu peux faire mieux. |
| cas
15<=X<18 |
alors
C'est bien. |
| cas
18<=X<=20 |
alors
C'est très bien. |
Voici la traduction
en langage Visua Basic du cas précédent.
DIM
x
INPUT "Quelle est votre note? ", x
SELECT CASE x
- CASE IS <=
5
-
PRINT "C'est nul."
- CASE IS <
10
-
PRINT "Ce n'est pas bien."
- CASE IS <
15
-
PRINT "Tu peux faire mieux."
- CASE IS <
18
-
PRINT "C'est bien."
- CASE ELSE
-
PRINT "C'est très bien."
END SELECT
|
- Select case
introduit la variable à comparer (ici x)
- CASE
introduit un cas.
- IS
représente, dans les comparaisons, la variable à
comparer (IS=x)
- ELSE
englobe tous les autres cas.
- END SELECT
est obligatoire: c'est lui qui termine la comparaison.
- Les comparaisons
s'effectuent dans
l'ordre où elles apparaissent.
Quand le cas est défavorable, on passe au suivant.
Quand le cas est favorable, on exécute l'action qui
suit, puis on reprend le programme après le END
SELECT sans
se préoccuper des cas suivant. Ainsi, si la note vaut
12, IS<=5 est faux,
IS<10 est faux,
IS<15 est
vrai, on affiche «Tu peux faire
mieux», puis
on va à END
SELECT. (On ne se préoccupe pas du fait
que IS<18 est vrai et du cas
ELSE).
Architecture de SELECT
CASE
SELECT CASE <variable>
- CASE <exp
1>
-
<action 1>
- CASE <exp
2>
-
<action 2>
- CASE <exp
3>
-
<action 3>
- [...]
- CASE <exp
n-1>
-
<action n-1>
- CASE ELSE
-
<action n>
END SELECT
<variable>
est de n'importe quel type.
<exp>
est:
- Soit une autre
variable, soit une
valeur. Dans ce
cas, on teste implicitement (IS=valeur).
- Soit une expression
arithmétique
(on teste alors implicitement IS=expression).
- Soit un intervalle
de valeurs (ex:
5 to 10)
- Soit une condition
introduite par
IS (ex: IS < 5 )
- Soit le mot clé ELSE
|