Switch case()

La construction switch case() est semblable à une série de sentences if regroupées dans une seule composition. Parfois, on a besoin de comparer la même variable à différentes valeurs, et exécuter une partie distincte du code dépendant de la valeur à laquelle on fait référence.

Syntaxe

switch (expression) {
	case valeur1:
           //Instructions que s'exécuteront quand la valeur soit égal à valeur1
           break;
	case valeur2:
           //Instructions que s'exécuteront quand la valeur soit égal à valeur2
           break;
           //on peut ajouter les “case” qu'on veut, finalement, on ferme avec une section default
	default:
	   //Instructions que s'exécuteront si aucun "case" précédent à été rempli
}

Le bloc switch case() ressemble à un bloc if…else(): il est construit d’une série d’instructions case et un default optionnel. Le premier case sert à évaluer la condition, si celle-ci est remplie, le programme exécute les nouvelles instructions jusqu’au break; si, par contre, la condition n’est pas vraie, il passe au deuxième case... Si aucune condition (case) est remplie, le programme exécutera les instructions consignées dans la section default (optionnel).

Exemple

Nous allons créer une variable x que l’on comparera avec plusieurs case: si la variable vaut 20, le moniteur série nous montrera « vaut 20 exactement », si sa valeur es de 50, « vaut 50 exactement », et si la valeur ne remplie aucune de ces deux conditions, « Ne vaut pas les valeurs antérieures »:

byte x=50;

void setup(){    
  Serial.begin(9600);
}

void loop(){
  switch (x) {
    case 20:
      Serial.println("Vaut 20 exactament");
      break;
    case 50:
      Serial.println("Vaut 50 exactament");
      break;
    default:
      Serial.println("Ne vaut pas les valeurs antérieures");
  }
  delay(1000);
}

Voir aussi