La instrucción Switch está más estrechamente relacionada con la declaración IF, y también es una declaración de control de procesos comúnmente utilizada en otros lenguajes de programación. Sin embargo, los partidos de interruptor son patrones congruentes. Si no presta atención a este detalle, a menudo cometerá errores al escribir programas.
Código:
var n = '5'; switch (n) {caso 5: alerta ('ejecutar rama de casos'); ruptura; default: alerta ('ejecutar la rama predeterminada');}resultado:
Muchas personas pueden pensar erróneamente que el programa anterior irá a la rama del caso, pero al final, irá a la rama predeterminada. ¿No son iguales? Usemos la instrucción IF para ver.
Código:
var n = '5'; if (n == 5) {alerta ('rama verdadera');} else {alert ('rama falsa');}resultado:
Se puede coincidir en una declaración IF, pero ¿por qué no se puede igualar en una instrucción Switch?
Esto se debe a que el caso en la instrucción Switch usa el modo de convergencia, que es equivalente al uso de tres signos iguales en IF. Reescribamos el código del caso
Código:
var n = '5'; switch (n) {case '5': // Reescribe el caso original 5 en el caso '5'Alert (' Execute Case Branch '); Break; default: alerta (' Ejecutar la rama predeterminada ');}resultado:
Después de reescribirlo, puede ir a la rama del caso, al igual que usamos tres signos iguales en IF
Código:
var n = '5'; if (n === 5) {alert ('rama verdadera');} else {alerta ('rama falsa');}resultado:
Debido a que se usa la convergencia, la cadena 5 no es igual al número 5, y la rama falsa se ha ido.
El ejemplo anterior muestra que un problema al que debe prestarse atención al usar un patrón de coincidencia congruente en Switch, especialmente cuando los números coinciden con las cadenas.