Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

174
Vistas
¿Por qué esta declaración de cambio no funciona perfectamente?

 const number = prompt("Enter your number"); const txt = "You result is : "; switch (number) { case (number >= 80 && number <= 100): document.write(`${txt} A+`); break; case (number >= 70 && number <= 80): document.write(`${txt} A gread`); break; case (number >= 60 && number <= 70): document.write(`${txt} B gread`); break; case (number >= 50 && number <= 60): document.write(`${txt} C gread`); break; case (number >= 33 && number <= 50): document.write(`${txt} D gread`); break; case (number >= 0 && number <= 33): document.write(`${txt} Field !`); break; case (number > 100 || number < 0): document.write(`It's not a valid number. Please input any valid number.`); break; default: document.write(`Not input any number. Please input any number .`); break; }

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Con una declaración de cambio, evalúa la expresión justo después switch . En su caso, ese sería el number .

Entonces, sus casos se evalúan con el número. Esto es lo que pasará:

  • Supongamos que ingresamos '88' en el aviso.
  • Lo primero con lo que está evaluando number es (number >= 80 && number <= 100) . El resultado de esto último es true .
  • ahora el valor del number , 88 se compara con true , así: 88===true .
  • esto da como resultado un false , por lo que se evalúa el siguiente caso.
  • lo mismo sucede para los siguientes casos, justo hasta el punto en que llega al caso predeterminado.
over 4 years ago · Santiago Trujillo Denunciar

0

Hay dos razones por las que este código no funcionará:

  • La primera razón es porque el método de prompt devuelve una cadena como puede ver al escribir

     console.log('Type of number:', typeof number); // Expected output: Type of number: string

    Puede resolver esto analizando la salida del método de solicitud de la siguiente manera

     const number = parseInt(prompt("Enter your number"));
  • La segunda razón es porque en una declaración de switch , el valor evaluado de la expresión de cambio se compara con los valores evaluados de los casos.

    Significa que el valor de number (número) se compara con la expresión (number >= 80 && number <= 100) (expresión de comparación) y así sucesivamente con los demás.

    Entonces, a menos que una de sus expresiones de caso produzca un número, el switch intentará evaluar el valor del number en la expresión (que siempre es verdadera), lo que significa que el switch está comparando 45 === true , sin coincidir con ninguno de los casos.

Simplemente use if / else en su lugar:

 if (number >= 80 && number <= 100) document.write(`${txt} A+`); else if (number >= 70 && number <= 80) document.write(`${txt} A gread`); else if (number >= 60 && number <= 70) document.write(`${txt} B gread`); else if (number >= 50 && number <= 60) document.write(`${txt} C gread`); else if (number >= 33 && number <= 50) document.write(`${txt} D gread`); else if (number >= 0 && number <= 33) document.write(`${txt} Field !`); else if (number > 100 || number < 0) document.write(`It's not a valid number. Please input any valid number.`); else document.write(`Not input any number. Please input any number .`);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda