Error con javascript

  • Autor Autor Usuario eliminado 174876
  • Fecha de inicio Fecha de inicio
U

Usuario eliminado 174876

HOLA BETAS,

¿POR QUÉ CUÁNDO INTRODUZCO UNA CIFRA EN EL PROMPT, NO ME OFRECE NINGUNO DE LOS CASOS POSIBLES DENTRO DE LA ESTRUCTURA SWITCH-CASE QUE HE CREADO?

Insertar CODE, HTML o PHP:
var n = prompt("Introduzca la nota final del examen.");
switch (n) {
  case (n<5):
    alert(n + " - SUSPENSO");
    break;
  case (n<7):
    alert(n + " - APROVADO");
    break;    
  case (n<9):
    alert(n + " - NOTABLE");
    break;
  case (n<10):
    alert(n + " - SOBRESALIENTE");
    break;
  case (n=10):
    alert(n + " - MATRÍCULA DE HONOR");
    break;
  default:
    alert("NO PRESENTADO");
}

PUEDE SER PORQUE PROMPT SÓLO RESPONDE ANTE DATOS DE TIPO STRING???

SALUDOS.
 
Hay dos problemas con tu código:

1) Tienes que transformar el valor del string a un int, es decir:
Insertar CODE, HTML o PHP:
    var x = prompt("Introduzca la nota final del examen."); 
    var n = parseInt(x);

2) Está mal la estructura del switch case https://www.w3schools.com/js/js_switch.asp
 
Hola,

Gracias amigo por tu aportación.

A parte de lo que tú muy bien comentas, también he incluido el método Math.float para redondear el tipo float a la baja, y evitar con ello que "4.99 pt." sea un APROVADO.

Aquí os dejo con el código:

Insertar CODE, HTML o PHP:
var x = prompt("Introduzca la nota final del examen.");
var n = parseInt(Math.floor(x));
switch (n) {
  case 0:
  case 1:
  case 2:
  case 3:
  case 4:
    alert(x + " - SUSPENSO");
    break;
  case 5:
  case 6:
    alert(x + " - APROVADO");
    break;     
  case 7:
  case 8:
    alert(x + " - NOTABLE");
    break;
  case 9:
    alert(x + " - SOBRESALIENTE");
    break;
  case 10:
    alert(x + " - MATRÍCULA DE HONOR");
    break;
  default:
    alert("Introduzca una valoración entre 0 y 10 puntos, por favor.");
}

Saludos... jejeje. :sorrow:
 
Última edición por un moderador: