Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

Duda sobre ejercicio 2 del Desafío

¡Hola!

Espero todo marche bien.

Tengo una duda sobre el código del ejercicio 2 del desafío, en el que se desea comprobar si el número que da el usuario es positivo, negativo o cero. ¿Por qué cuando en efecto escribo un número negativo, el alert correspondiente no sale? El pop up muestra el mensaje de que el número es positivo.

¿Cómo solucionar esto?

¡Gracias anticipadas!

4 respuestas

Hola, buenos días ¿Podrías compartir el código así vemos si podemos resolver el problema que tiene?

alert ("¡Bienvenido al juego de positivo o negativo");

num = prompt("dame un numero, porfavor:");

if (num > 0) 
    {
    alert(`el ${num} es positivo`);
}
else if ((num < 0) ){
    alert(`el ${num} es negativo`);
}
else{
    alert('Es cero, intenta con otro numero')
}

El problema está en que prompt devuelve un string (cadena de texto), y las comparaciones con > o < no funcionan correctamente con cadenas. Por eso, aunque introduzcas un número negativo, el programa lo interpreta como texto y no evalúa correctamente la condición.

Para solucionarlo, convierte el valor ingresado a un número utilizando parseInt (número entero), así:

alert("¡Bienvenido al juego de positivo o negativo");

let num = parseInt(prompt("Dame un número, por favor:"));

if (num > 0) {
    alert(`El ${num} es positivo`);
} else if (num < 0) {
    alert(`El ${num} es negativo`);
} else {
    alert('Es cero, intenta con otro número');
}

Con esta corrección, el programa funcionará correctamente, ya que estás comparando números en lugar de cadenas. Y cambia el uso de doble paréntesis en "else if(num<0)" porque aunque no genera un error en el programa, pero es innecesario y puede causar confusión, así para tener las costumbres de tener buenas practica.

muchas gracias, pero mi codigo si funciona