Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BBC BASIC

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$

PRINT 


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

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse