freeCodeCamp/guide/spanish/certifications/javascript-algorithms-and-d.../basic-javascript/selecting-from-many-options.../index.md

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 .