L'instruction switch est la plus étroitement liée à l'instruction if. C'est également une instruction de contrôle de flux couramment utilisée dans d'autres langages de programmation. Cependant, la correspondance de switch est en mode congruent. fera souvent des erreurs lors de l’écriture de programmes.
Code :
var n = '5'; switch(n){ case 5: alert('执行case分支'); break; default: alert('执行default分支'); }
Résultat :
Beaucoup de gens peuvent penser à tort que le programme ci-dessus prendra la branche case, mais en fin de compte, il prend la branche par défaut. Ne sont-ils pas égaux tous les deux ? Jetons un coup d'œil en utilisant l'instruction if.
Code :
var n = '5'; if(n==5){ alert('真 分支'); }else{ alert('假 分支'); }
Résultat :
Il peut correspondre dans l'instruction if, mais pourquoi ne peut-il pas correspondre dans l'instruction switch ?
Cela est dû au fait que le cas dans l'instruction switch utilise le mode congruent, ce qui équivaut à utiliser trois signes égaux dans if. Réécrivons le code du cas
Code :
var n = '5'; switch(n){ case '5': // 把原来的 case 5 改写成 case '5' alert('执行case分支'); break; default: alert('执行default分支'); }
Résultat :
Après la réécriture, vous pouvez prendre la branche case, tout comme nous utilisons trois signes congruents dans if
Code :
var n = '5'; if(n===5){ alert('真 分支'); }else{ alert('假 分支'); }
Résultat :
Parce que la congruence est utilisée, la chaîne 5 n'est pas égale au nombre 5 et le résultat est une fausse branche.
L'exemple ci-dessus montre que le mode de correspondance congruente est utilisé dans switch, en particulier un problème auquel il faut prêter attention lors de la correspondance de nombres et de chaînes