Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

177
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!