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

Desafío: hora de practicar en 01. Iniciando con JavaScript

Juego del Amor

Realicé un ejercicio personal usando lo aprendido en esta primera clase Iniciando con JavaScript.

Requerimiento:
Realizar un ejercicio usando las funciones alert, prompt, creación y asignación de variables, bloques de condición if y comparaciones de variables de tipo entero.
Juego del Amor, en este ejercicio se solicita al usuario ingresar 1 de 3 opciones para mostrar un mensaje diferente dependiendo de la respuesta obtenida.

Observación: nótese que se colocan 3 bloques de if porque la variable respuesta solo podrá ingresar a 1 de los bloques, significando que son excluyentes.

alert(":::Juego del Amor:::");

let respuesta = prompt("Eres muy lindo/a, ¿quieres salir conmigo? [1] Sí. [2] No. [3] No, eres muy fea/o, no me hables.");

if(respuesta == 1) {
    alert("¡¡Soy la persona más feliz!!");
}

if(respuesta == 2) {
    alert("Ooowww, te lo pierdes, no eres tan lindo.");
}

if(respuesta == 3) {
    alert("¡Hey! Eso es cruel. Se lo diré a la profesora.");
}
2 respuestas

¡Hola!

Tu juego del amor es una idea muy buena, aunque veo dos errores en tu código.

Primero, aprende que JavaScript puede asignar datos en variables, pero no solamente el valor como tal, sino el tipo de valor (si es un número entero, un número decimal, una cadena de texto, un valor booleano, etc.).
Pero un input del usuario siempre es un valor de tipo cadena de texto (string), por lo que tu código te arrojará un error al querer comparar un valor de tipo string con un valor de tipo número entero (int). Hay dos formas de corregir el error, pero a estas alturas del curso lo mejor será cambiar la comparación:

if (respuesta == "1")

Así tanto la respuesta como el valor a comparar son de tipo string, y no tendrás problemas.

Segundo, tienes tres sentencias if. Esto está bien, pero considera que puede haber un impacto --imperceptible-- en la eficiencia de tu código, porque evalúa una sola cosa tres veces. Mejor, aprovecha que tu código "ya sabe" que la respuesta ha sido 1 o no, etc., con una sentencia else:

if(respuesta == "1") {
alert("¡¡Soy la persona más feliz!!");
}

else {
if(respuesta == "2") { // Aquí ya sabe que la respuesta no es 1 y no tiene que evaluarla nuevamente
alert("Ooowww, te lo pierdes, no eres tan lindo.");
}
}

else { // Toma nota de esta línea
alert("¡Hey! Eso es cruel. Se lo diré a la profesora.");
}

Con el último else, tu código entiende que la respuesta no es ni 1 ni 2, así que ya no se molestará en evaluar si es 1 ó 2 cada vez. Éste el el chiste del else, con el que además evitarás el error de que no envía ningún mensaje si el usuario pone cualquier otra cosa que no sea 1, 2 ó 3. Sencillamente si no es ni 1 ni 2, se lo dirá a la Directora.

Hey, gracias por revisar mi ejercicio y por las recomendaciones.

Sobre los tipos de datos en JavaScript que se reciben con el prompt, estoy acostumbrándome a ello todavía, mi primera idea fue aplicar parseInt a la variable respuesta para hacer las comparaciones pero como aún no enseñan a convertir de un tipo de dato a otro, no quise marear a nadie por si un novato leyera mi código.
Tu idea de cambiar el entero 1 a la cadena "1" es perfecta. Gran idea.

Sobre lo otro, nuevamente, no quise usar todavía el else. Este Juego de Amor fue mi segunda idea, la primera requería sí o sí usar else pero aún no lo enseñaban en este punto.

Gracias por tu respuesta, espero encontrarte nuevamente por aquí o en Discord.