4.4 KiB
title | localeTitle |
---|---|
Selecting from Many Options with Switch Statements | Selección de muchas opciones con instrucciones de cambio |
Selección de muchas opciones con instrucciones de cambio
Si tiene muchas opciones para elegir, use una instrucción de switch
. Una instrucción de switch
prueba un valor y puede tener muchas declaraciones de case
que definen varios valores posibles. Las declaraciones se ejecutan desde el primer valor de case
coincidente hasta que se encuentra una break
.
Aquí hay un ejemplo de pseudocódigo:
switch(num) {
case value1:
statement1;
break;
case value2:
statement2;
break;
...
case valueN:
statementN;
break;
}
Un poco más de explicación.
Una sentencia de switch primero evalúa su expresión. Luego busca la primera cláusula de case
cuya expresión se evalúa con el mismo valor que el resultado de la expresión de entrada (usando la comparación estricta , ( ===
) y transfiere el control a esa cláusula, ejecutando las declaraciones asociadas. (Si coinciden varios casos el valor proporcionado, el primer caso que coincide se selecciona, incluso si los casos no son iguales entre sí.)
Si no se encuentra una cláusula de case
coincidente, el programa busca la cláusula default
opcional y, si se encuentra, transfiere el control a esa cláusula, ejecutando las declaraciones asociadas. Si no se encuentra una cláusula default
, el programa continúa la ejecución en la declaración que sigue al final del switch
. Por convención, la cláusula default
es la última cláusula, pero no es necesario que lo sea.
La declaración de break
opcional asociada con cada etiqueta de caso asegura que el programa se salga del conmutador una vez que se ejecute la sentencia coincidente y continúe la ejecución en la sentencia siguiente al conmutador. Si se omite break
, el programa continúa su ejecución en la siguiente declaración en la instrucción switch
. 1
Explicación del problema:
Escriba una instrucción de conmutación que pruebe val
y establezca la answer
para las siguientes condiciones:
1
- "alfa",2
- "beta",3
- "gamma",4
- "delta".
Sugerencia 1
Recuerde que los valores de los case
se prueban con igualdad estricta ( ===
).
Intenta resolver el problema ahora!
Sugerencia 2
No vea las "condiciones siguientes" como una lista ordenada como se ve en la demostración original de freeCodeCamp, sino como valores y declaraciones, como se muestra aquí
Intenta resolver el problema ahora!
¡Alerta de spoiler!
¿Estás completamente seguro de lo que quieres ver? ...
Solución de código básico
function caseInSwitch(val) {
var answer = "";
// Only change code below this line
switch(val) {
case 1:
return "alpha";
break;
case 2:
return "beta";
break;
case 3:
return "gamma";
break;
case 4:
return "delta";
break;
}
// Only change code above this line
return answer;
}
// Change this value to test
caseInSwitch(1);
Explicación del Código
Es común ignorar que los valores de case
se prueban con igualdad estricta con cualquier necesidad de otra expresión, como por ejemplo: case === value
Solución de código alternativo:
function caseInSwitch(val) {
var answer = "";
// Only change code below this line
switch (val){
case 1:
answer="alpha";
break;
case 2:
answer="beta";
break;
case 3:
answer="gamma";
break;
case 4:
answer="delta";
break;
}
// Only change code above this line
return answer;
}
// Change this value to test
caseInSwitch(1);
· Ejecutar código en repl.it.
Explicación del código
Dado que ya tiene una variable definida al comienzo de la función llamada answer
y está definida como la última declaración de retorno, puede asignarle nuevos valores para cada caso y devolverá la respuesta esperada según el valor que pase a la función.
Fuentes
1 . Descripción de "switch" - referencia de JavaScript MDN .