English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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‹/›
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.
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.
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.