CASE
DESCRIPTION.
L'instruction composée CASE ... OF débute un bloc d'instruction selon que.
L'instruction WHEN exécute une ou plusieurs instructions si la valeur témoin est rencontrée.
L'instruction OTHERWISE exécute une ou plusieurs instructions si aucune valeur témoin n'est rencontrée.
L'instruction ENDASE termine un bloc d'instruction selon que.
SYNTAXE.
CASE variable OF
WHEN valeurA :
ligne Aa
ligne Ab
...
ligne An
WHEN valeurB :
ligne Ba
ligne Bb
...
ligne Bn
...
WHEN valeurN :
ligne Na
ligne Nb
...
ligne Nn
OTHERWISE
ligne autrea
ligne autreb
...
ligne autren
ENDCASE
REMARQUES.
variable peut être :
- l'identifiant, le nom, d'une variable de n'importe quel type, valide et existant ;
- une valeur retournée par une fonction du BBC BASIC ou personnalisée ;
- le résultat d'une opération mathématique ou d'une concaténation ;
- une expression.
valeur doit être une ou plusieurs valeurs brutes de même type que variable.
ligne doit être une instruction, fonction, affectation ou une commande valide pour le BBC BASIC for SDL 2.0.
Un bloc selon que, introduit par l'instruction composée CASE ... OF et finalisé par l'instruction ENDCASE, permet d'exécuter une ou plusieurs lignes de script selon la valeur de variable, au moment de l'entrée dans le bloc selon que.
Si une instruction WHEN est prévue pour une ou plusieurs valeurs de variable, la ou les lignes de script à la suit de cette instruction WHEN sont exécutées, puis le programme se poursuit à la première ligne suivant l'instruction ENDCASE. Si valeur est associé à plusieurs instruction WHEN, seule les lignes de script à la suite de la première association seront exécutées.
Une instruction WHEN peut être associée à plusieurs valeurs, si elles sont séparées par une virgule : WHEN valeurA , valeurB , ... , valeurN : . Dans ce cas, les lignes de script de cette clause seront exécutées, si au moins l'une des valeurs de la liste de valeurs est rencontré.
Si une clause WHEN valeur ne doit exécuter qu'une seule instruction, fonction ou commande BBC BASIC, il est possible de la placée directement à la suite des deux points : : WHEN valuurA : ligne.
Si une instruction OTHERWISE est présente, les lignes de script à sa suite seront exécutées si valeur ne correspond à aucune association avec une instruction WHEN. L'instruction OTHERWISE est facultative, mais si elle est utilisée, elle doit être placée après toutes les instructions WHEN et avant l'instruction ENDCASE.
Si la valeur de variable n'est associée à aucune clause WHEN valeur, et si aucune instruction OTHERWISE ne termine le bloc selon que, toutes les lignes de script présentes dans le bloc selon que seront ignorées.
EXEMPLE.
Exemple 1. Cas généraux.
kaction$ = ""
kvitesse = 50
WHILE TRUE
CLS
PRINT "+ pour accelerer. - pour ralentir. T pour turbo. F pour freiner. Q pour quitter."
kchoix$ = INKEY$(0)
CASE kchoix$ OF
WHEN "+" : kaction$ = "A"
WHEN "-" : kaction$ = "R"
WHEN "T" , "t" : kaction$ = "T"
WHEN "F" , "f" : kaction$ = "F"
WHEN "Q" , "q" : EXIT WHILE
OTHERWISE : PRINT "Votre choix ?"
ENDCASE
CASE kaction$ OF
WHEN "A" :
PRINT "On accelere en douceur ..."
kvitesse += 1
WHEN "T" :
PRINT "Wouah, on met le turbo ..."
kvitesse += 5
WHEN "F" :
PRINT "On fait crisser les pneus ..."
kvitesse -= 5
WHEN "R" :
PRINT "Tout doux, on ralentit ..."
kvitesse -= 1
ENDCASE
kmoteur$ = "ok."
IF kvitesse > 100 THEN kmoteur$ = "casse."
IF kvitesse < 1 THEN kmoteur$ = "arrete."
PRINT "Votre vitesse est " ; kvitesse
PRINT "Votre moteur est " ; kmoteur$
CASE kmoteur$ OF
WHEN "casse." :
PRINT "Conduisez plus prudemment la prochaine fois."
EXIT WHILE
WHEN "arrete." :
PRINT "Vous etes bien arrive."
EXIT WHILE
OTHERWISE : PRINT "On continue de rouler ..."
ENDCASE
WAIT( 50 )
ENDWHILE
PRINT "Test termine."
END
Exemple 2. La valeur est calculée.
FOR kvaleur = 1 TO 20 :
CASE 18 MOD kvaleur OF
WHEN 0 : PRINT "18 est divisible par " ; kvaleur
WHEN 1 : PRINT "18 MOD " ; kvaleur ; " retourne 1."
WHEN 2 : PRINT "18 MOD " ; kvaleur ; " retourne 2."
OTHERWISE : PRINT "18 MOD " ; kvaleur ; " retourne " ; 18 MOD kvaleur ; "."
ENDCASE
NEXT kvaleur
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.