English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base JavaScript

Objet JavaScript

Fonction JavaScript

HTML DOM JS

BOM du navigateur JS

Tutoriel de base AJAX

Référence JavaScript

Instructions switch JavaScript

Switch est une instruction conditionnelle comme if ... else ..., mais avec la différence que le statement switch permet de tester si une variable est égale à une liste de valeurs.

Utilisez switch pour choisir l'un des nombreux blocs de code à exécuter. C'est une solution parfaite pour éviter les statements if…else imbriqués.

Un statement switch ressemble à ce qui suit :

switch (expression) {
  case value1:  
    //L'instruction est exécutée
    //Le résultat de l'expression correspond à value1Matching
  break;
  case value2:  
    //L'instruction est exécutée
    //Le résultat de l'expression correspond à value2Matching
  break;
  ...
  case valueN:  
    //L'instruction est exécutée
    //Le résultat de l'expression correspond à value N
  break;
  default:
   //Lorsque aucune des opérations ci-dessus n'est exécutée
   //Exécutez le bloc de code ici
 }

Selon la logique du bloc de code ci-dessus, voici l'ordre des événements qui doivent se produire :

  • L'expression switch est évaluée une fois

  • Comparez la valeur de l'expression avec la valeur de chaque situation

  • Si une correspondance est trouvée, exécutez le bloc de code correspondant

  • Si aucune des situations ne correspond, exécutez le bloc de code par défaut

L'exemple suivant utilise le numéro de jour ouvrable pour calculer le jour de la semaine :

var day;
switch (new Date().getDay()) {
case 0: 
 day = "Sunday";
 break;
case 1: 
 day = "Monday";
 break;
case 2: 
 day = "Tuesday";
 break;
case 3: 
 day = "Wednesday";
 break;
case 4: 
 day = "Thursday";
 break;
case 5: 
 day = "Friday";
 break;
case 6: 
 day = "Saturday";
 break;
default: 
 day = "Undefined Day";
}
Voyons les tests‹/›

mot-clé break

Le mot-clé break associé à chaque étiquette case garantit que le programme sort du changement de case une fois que l'instruction correspondante a été exécutée et continue à exécuter l'instruction suivante après le changement. Si le mot-clé break est omis, le programme continuera à exécuter l'instruction suivante après l'instruction du statement switch.

Si vous oubliez de vous reposer, le script commencera par les situations qui correspondent aux conditions, puis il continuera à exécuter les situations satisfaisant les conditions :

var num = Number(document.querySelector("input").value);
var text;
switch (num) {
   case 1: 
    text = "Le numéro que vous avez entré est" 1";
   case 2: 
    text = "Le numéro que vous avez entré est" 2";
   case 3: 
    text = "Le numéro que vous avez entré est" 3";
   case 4: 
    text = "Le numéro que vous avez entré est" 4";
   case 5: 
    text = "Le numéro que vous avez entré est" 5";
   default: 
    text = "Exécutez l'instruction par défaut";
}
Voyons les tests‹/›

Il n'est pas nécessaire de rompre la dernière situation (c'est-à-dire la clé par défaut) dans le bloc switch car le bloc de statements se termine ici.

Clé par défaut

Si aucune instruction ne correspond à l'instruction, la clé par défaut spécifie certaines instructions à exécuter.

Il ne peut y avoir qu'une seule instruction par défaut dans switch. Bien que cela soit optionnel, il est recommandé de l'utiliser car il peut gérer des situations imprévues.

Plusieurs cas

Parfois, vous souhaitez que différentes situations utilisent le même code ou utilisent un code générique.

Voici un exemple d'instruction switch avec ordre d'exécution, où quatre valeurs différentes exécutent des opérations complètement identiques :

var num = Number(document.querySelector("input").value);
var text;
switch (num) {
   case 1:
   case 2:
   case 3:
   case 4:
  text = "Le nombre que vous avez entré est entre 1 - 4";
  break;
   case 5:
   case 6:
   case 7:
   case 8:
  text = "Le nombre que vous avez entré est entre 5 - 8";
  break; 
   default: text = "Exécutez l'instruction par défaut";
}
Voyons les tests‹/›

Si plusieurs cas correspondent à la valeur, le premier cas est sélectionné.

Si l'étiquette correspondante n'est pas trouvée, le programme continuera à utiliser l'étiquette par défaut.

Si l'étiquette par défaut n'est pas trouvée, le programme continuera à exécuter l'instruction après le commutateur.