Instruction Switch en JavaScript
Flux de Contrôle Switch
En fonction d'une condition, switch sélectionne un ou plusieurs blocs de code à exécuter .
switch exécute les blocs de code qui correspondent à une expression .
switch est souvent utilisé comme une alternative plus lisible à de nombreuses instructions if...else if...else, surtout lorsqu'il s'agit de plusieurs valeurs possibles.
Syntaxe
switch( expression ) {
case x :
// bloc de code
break;
case y :
// bloc de code
break;
default:
// bloc de code
} Voici comment cela fonctionne :
- L'expression switch est évaluée une fois.
- La valeur de l'expression est comparée aux valeurs de chaque cas.
- S'il y a une correspondance, le bloc de code associé est exécuté.
- S'il n'y a pas de correspondance, aucun code n'est exécuté.
Exemple
Cet exemple utilise le numéro du jour de la semaine pour déterminer le nom du jour :
switch (new Date().getDay()) {
case 0:
day = "Dimanche";
break;
case 1:
day = "Lundi";
break;
case 2:
day = "Mardi";
break;
case 3:
day = "Mercredi";
break;
case 4:
day = "Jeudi";
break;
case 5:
day = "Vendredi";
break;
case 6:
day = "Samedi";
} Remarque
La méthode getDay() renvoie le jour de la semaine sous forme de nombre entre 0 et 6.
(Dimanche=0, Lundi=1, Mardi=2 ..)
Le mot-clé break
Lorsque JavaScript atteint un mot-clé break , il sort du bloc switch .
Cela arrête l'exécution à l'intérieur du bloc switch.
Aucune autre instruction dans le bloc switch ne sera exécutée.
Il n'est pas nécessaire de sortir du dernier cas, le switch se termine (sort) de toute façon là.
Remarque
Le mot-clé break est crucial pour éviter un "fall-through".
Sans break , le code continuera à exécuter les blocs de cas suivants (et le bloc par défaut s'il est présent) même si leurs valeurs ne correspondent pas à l'expression .
Le mot-clé default
Le mot-clé default spécifie un bloc de code à exécuter s'il n'y a pas de correspondance de cas.
Le mot-clé default est optionnel.
Le default peut agir comme une solution de secours :
Exemple
La méthode getDay() renvoie le jour de la semaine sous forme de nombre entre 0 et 6.
Si aujourd'hui n'est ni Samedi (6) ni Dimanche (0), écrivez un message par défaut :
switch (new Date().getDay()) {
case 6:
text = "Aujourd'hui c'est Samedi";
break;
case 0:
text = "Aujourd'hui c'est Dimanche";
break;
default:
text = "En attente du Week-end";
} Le résultat de text sera :
Le cas default n'a pas besoin d'être le dernier cas dans un bloc switch :
Exemple
switch (new Date().getDay()) {
default:
text = "En attente du Week-end";
break;
case 6:
text = "Aujourd'hui c'est Samedi";
break;
case 0:
text = "Aujourd'hui c'est Dimanche";
} Si default n'est pas le dernier cas dans le bloc switch, n'oubliez pas de terminer le cas par défaut par un break.
Blocs de Code Communs
Parfois, vous voudrez que différents cas switch utilisent le même code.
Dans cet exemple, les cas 4 et 5 partagent le même bloc de code, et 0 et 6 partagent un autre bloc de code :
Exemple
switch (new Date().getDay()) {
case 4:
case 5:
text = "Bientôt c'est le Week-end";
break;
case 0:
case 6:
text = "C'est le Week-end";
break;
default:
text = "En attente du Week-end";
} Détails du Switch
Si plusieurs cas correspondent à une valeur de cas, le premier cas est sélectionné.
Si aucun cas correspondant n'est trouvé, le programme continue vers l'étiquette default .
Si aucune étiquette par défaut n'est trouvée, le programme continue vers l'instruction(s) après le switch .
Comparaison Stricte
Switch utilise une comparaison stricte (===).
Les valeurs doivent être du même type pour correspondre.
Une comparaison stricte ne peut être vraie que si les deux opérandes sont du même type.
Exemple
Dans cet exemple, il n'y a pas de correspondance pour x :
let x = "0";
switch (x) {
case 0:
text = "Éteint";
break;
case 1:
text = "Allumé";
break;
default:
text = "Aucune valeur trouvée";
}