5.2     La condition switch ... case



L'instruction switch (interrupteur) permet de faire plusieurs tests sur le contenu d'une même variable. Ce branchement conditionnel simplifie beaucoup le test sur plusieurs valeurs possibles d'une variable, car cette opération aurait été compliquée (mais possible) avec des if imbriqués.

Sa syntaxe est la suivante :

 switch (Variable) {
	case Valeur1:
	Liste d'instructions;
	break;
	case Valeur2:
	Liste d'instructions;
	break;
	case ValeurX:
	Liste d'instructions;
	break;
	default: 
	Liste d'instructions;
	break;
}
  

Exemple 1

    var jour = 3; var txt;
    switch (jour) {
	case 1:
	txt="Lundi";
	break;
	case 2:
	txt="Mardi";
	break;
	case 3:
	txt="Mercredi";
	break;
	case 4:
	txt="Jeudi";
	break;
	case 5:
	txt="Vendredi";
	break;
	default: 
	txt="";
	break;
   }
   alert("Nous sommes un "+txt+".")
    
        Exécuter cet exemple : Exemple 1

Les parenthèses qui suivent le mot clé switch indiquent l'expression dont la valeur est testée successivement par chacun des case. Lorsque l'expression testée est égale à une des valeurs suivant un case, la liste d'instruction qui suit celui-ci est exécutée. Le mot clé break indique la sortie de la structure conditionnelle. Le mot clé default précède la liste d'instructions qui sera exécutée si l'expression n'est jamais égale à une des valeurs. Il est essentiel de terminer chaque bloc d'instructions par l'instruction break ! N'oubliez pas d'insérer des instructions break entre chaque test, ce genre d'oubli est difficile à détecter car aucune erreur n'est signalée.

Exemple 2

  var jour = 3;  var txt;
  switch (jour) {
      case 1:
      case 2:
      case 3:
      case 5:
      txt="08h à 18h30";
      break;
      case 4:
      txt="08h à 19h30";
      break;
      case 6:
      txt="08h à 17h00";
      break;
      default: 
      txt="Le magasin est fermé !";
      break;
    }   
  alert("Heure d'ouverture du magasin : "+txt)    
    
        Exécuter cet exemple : Exemple 2

Exercice 1

   //Que se passe-t-il ici ?
   var choix = 2;
   switch (choix){
     case 1:
     alert("Vous avez fait le premier choix") ;
     break ;
     case 2:
     alert("Vous avez fait le deuxième choix") ;
     case 3:
     alert("Vous avez fait le troisième choix") ;
     break ;
     default :
     alert("Vous avez fait un choix au moins égal à 4") ;
   }
    
        Copier cet exercice : Exercice 1                

Exercice 2

    //Quel est le contenu de l'alert ?
    var date = new Date();
    jour = date.getDay();
    switch (jour){
      case 5:
      alert("Enfin c'est vendredi !");
      break;
      case 6:
      alert("Super, c'est samedi ...");
      break;
      case 0:
      alert("C'est dimanche, je dors ...");
      break;
      default:
      alert("Je travaile et j'attends le week-end.");
   } 
    
        Copier cet exercice : Exercice 2