JavaScript - Condición que se cumple sin motivo

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 34 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Condición que se cumple sin motivo

Publicado por Óscar (1 intervención) el 05/12/2020 20:26:54
Hola, soy un estudiante de programación y puede que sea un fallo muy obvio, pero no logro encontrarlo.

EL PROBLEMA ES QUE CUANDO A LA VARIABLE MAX SE LE DAN VALORES SUPERIORES O IGUALES A 10 EL ALERT "DEBE SER MENOR QUE MAX" SE ACTIVA AUNQUE EL NÚMERO CUMPLA LA CONDICIÓN EXCEPTO CUANDO NUM =1.

AGRADECERÍA VUESTRA AYUDA.


1
2
3
4
5
6
7
8
9
10
11
12
13
prueba();
function prueba() {
    var max = prompt("dime el máximo");
    do {
        var num = prompt("Dame un número impar");
        if (num >= max) {
            alert("Tiene que ser menor que " + max);
        }
        if (num % 2 == 0) {
            alert("Escribe un número impar.");
        }
    } while (num % 2 == 0 || num >= max);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Condición que se cumple sin motivo

Publicado por joel (895 intervenciones) el 06/12/2020 09:48:53
Hola Óscar, tu problema es que estas tratando max y num como string no como integer...
Eso que quiere decir, que por ejemplo: "10">"5" es false!!!

Para solucionar tu problema, tienes que convertir el string a integer con parseInt() algo así:
1
var max = parseInt(prompt("dime el máximo"));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar