Accueil > QBasic > QBasic – Les cas

QBasic – Les cas

This entry is part 12 of 30 in the series QBasic - Tutoriel

Les cas sont souvent utilisés lorsqu’il faut tester une expression. Il s’agit de la structure
SELECT CASE. SELECT CASE est parfois préférable à IF…THEN…ELSE :


CLS
PRINT « Bienvenue au restaurant ‘SELECT CASE’ »
INPUT « Combien de couverts désirez vous ? », Couverts

SELECT CASE Couverts ‘ Séléction du cas

CASE 0 ‘ Premier cas : SI Couverts = 0
PRINT « Vous connaissez la sortie… »

CASE 1 ‘ Deuxième cas : SI Couverts = 1
PRINT « Une table pour une personne, une ! »

CASE 2 ‘ Troisième cas : SI Couverts = 2
PRINT « Haha! Un dîner en tête à tête ? »

CASE 7, 13 ‘ Quatrième cas : SI Couverts = 7 OU Couverts = 13
PRINT « Désolé, ici on est superstiteux et on ne sert pas se nombre de couverts »

CASE 3 TO 12 ‘ Cinquième cas : SI Couverts => 3 ET Couverts =< 6
PRINT "C'est un repas en famille ?"

CASE IS > 12 ‘ Cinquième cas : SI Couverts > 6
PRINT « Mais vous êtes une armée ! »

CASE ELSE ‘ Sixième cas : Tous les autres cas :
PRINT « Très drôle » ‘ SI Couverts est négatif, SI Couverts n’est pas
‘ entier …
END SELECT ‘ Fin de la séléction de cas


Détaillons ces cas :

  • CASE 0, CASE 1, CASE 2 : Dans ces trois cas, on ne spécifie qu’une valeur de la
    variable Couverts. Si Couverts a pour valeur 0, 1 ou 2, le cas correspondant est traité.

  • CASE 7, 13 : Ici, on a énuméré 2 valeurs possibles de Couverts. Si Couverts est
    égual à 7 ou à 13, le cas est traité

  • CASE 3 TO 12 : On a donné une fourchette de valeurs (de 3 à 12). Si Couverts est compris
    dans cet interval, le cas est traité.

  • CASE IS > 12 : Dans ce cas là, on a utilisé un opérateur relationnel. Donc il faut
    ajouter le mot clef IS après CASE. Si Couverts est supérieur à 12, le cas est traité.

  • CASE ELSE : Ce sont tous les autres cas. Il est traité si tous les autres cas spécifié
    n’ont pas convenus.

De l’importance du positionnement des CASE


La position de chaque CASE doit être scrupuleusement étudié. Dès qu’un cas à été traité,
l’ordinateur sort de la structure. C’est à dire que les autres cas ne seront pas regardés,
même si l’un d’eux convient. Comme le confirme l’exemple suivant où l’on a mis le CASE ELSE
en première position :

CLS
PRINT « Bienvenue au restaurant ‘SELECT CASE’ »
INPUT « Combien de couverts désirez vous ? », Couverts

SELECT CASE Couverts ‘ Séléction du cas

CASE ELSE ‘ Premier cas : Tous les autres cas :
PRINT « Très drôle » ‘ SI Couverts est négatif, SI Couverts n’est pas
‘ entier …
CASE 0 ‘ Deuxième cas : SI Couverts = 0
PRINT « Vous connaissez la sortie… »

CASE 1 ‘ Troisième cas : SI Couverts = 1
PRINT « Une table pour une personne, une ! »

CASE 2 ‘ Quatrième cas : SI Couverts = 2
PRINT « Haha! Un dîner en tête à tête ? »

CASE 7, 13 ‘ Cinquième cas : SI Couverts = 7 OU Couverts = 13
PRINT « Désolé, ici on est superstiteux et on ne sert pas se nombre de couverts »

CASE 3 TO 12 ‘ Sixième cas : SI Couverts => 3 ET Couverts =< 6
PRINT "C'est un repas en famille ?"

CASE IS > 12 ‘ Septième cas : SI Couverts > 6
PRINT « Mais vous êtes une armée ! »

END SELECT ‘ Fin de la séléction de cas


Quelque soit la valeur de Couverts, le cas CASE ELSE est executé. C’est pourquoi on conseille
de positionner les cas dans cet ordre :

  1. Les cas unitaires : CASE 0, CASE 1, CASE 2

  2. Les énumérations : CASE 7, 13

  3. Les intervalles : CASE 3 TO 12

  4. Les cas relationnels : CASE IS > 12

  5. Le cas autre : CASE ELSE

Series Navigation«QBasic – Structure conditionnelleQBasic – Maths, logique et divers»
Categories: QBasic Tags:
  1. Pas encore de commentaire
  1. Pas encore de trackbacks