L'instruction Switch est le plus étroitement liée à l'instruction IF et est également une instruction de contrôle de processus couramment utilisée dans d'autres langages de programmation. Cependant, les correspondances de commutation sont des modèles congruents. Si vous ne faites pas attention à ce détail, vous ferez souvent des erreurs lors de la rédaction de programmes.
Code:
var n = '5'; commutateur (n) {cas 5: alert ('exécuter la branche de cas'); break; par défaut: alert ('exécuter la branche par défaut');}résultat:
Beaucoup de gens peuvent penser à tort que le programme ci-dessus ira à la branche de cas, mais en fin de compte, il ira à la branche par défaut. Ne sont-ils pas égaux? Utilisons l'instruction if à voir.
Code:
var n = '5'; if (n == 5) {alert ('True Branch');} else {alert ('false branche');}résultat:
Il peut être apparié dans une instruction IF, mais pourquoi ne peut-il pas être égalé dans une instruction Switch?
En effet, le cas de l'instruction Switch utilise le mode de convergence, ce qui équivaut à l'utilisation de trois signes égaux dans if. Réécrivons le code de l'affaire
Code:
var n = '5'; switch (n) {case '5': // réécriture le cas d'origine 5 dans le cas '5'Alert (' Exécuter la branche de cas '); break; par défaut: alert (' exécuter la branche par défaut ');}résultat:
Après l'avoir réécrit, vous pouvez accéder à la branche de cas, tout comme nous utilisons trois signes égaux si
Code:
var n = '5'; if (n === 5) {alert ('vrai branche');} else {alert ('false branche');}résultat:
Étant donné que la convergence est utilisée, la chaîne 5 ne correspond pas au nombre 5 et la fausse branche a disparu.
L'exemple ci-dessus montre qu'un problème qui doit être prêté attention lors de l'utilisation d'un modèle de correspondance congruent dans Switch, en particulier lorsque les nombres correspondent aux chaînes.