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

Pequeño problema con el Break

Hola a todos, espero puedan ayudarme con esta duda. En mi código, cuando realizo 1 intento, se activa el break y cierra el bucle, así sea correcto o incorrecto el intento. ¿Alguien podría ayudarme? Gracias de antemano. Saludos.

let numeroSecreto = 5;
let numeroUsuario = 0;
let intentos = 1;
let palabraIntentos = "Intento";
let maximosIntentos = 3;
while(numeroUsuario != numeroSecreto){
    let numeroUsuario = prompt("Dame un valor del 1 al 10");

    console.log(numeroUsuario);

    if (numeroUsuario == numeroSecreto) {
        alert(`¡Super!, el numero si es ${numeroUsuario}, lo hiciste en ${intentos} ${palabraIntentos}`);
    } else {
        if(numeroUsuario > numeroSecreto){
            alert("El numero secreto es menor");
        } else{
            alert("El numero secreto es mayor");
        }
        intentos = intentos + 1;
        palabraIntentos = "Intentos";
        if(intentos > maximosIntentos);{
            alert("¡Llegaste al máximo de intentos permitidos!");
            break;}
        alert("Lo siento, te equivocaste");
    }
    
}
2 respuestas

Aca tengo la solucion, movi algunas cosas nada mas por mi preferencia, no tiene mucho que ver, pero para mi es mas sencillo asi :

let numeroSecreto = 5;
let numeroUsuario = 0;
let intentos = 0;
let palabraIntentos = "Intento";
let maximosIntentos = 3;

while(numeroUsuario != numeroSecreto){
    let numeroUsuario = prompt("Dame un valor del 1 al 10");
    intentos++;

    if(intentos >= maximosIntentos){
        alert("Lo siento, te equivocaste");
        alert("¡Llegaste al máximo de intentos permitidos!");
        break;
    } else if (numeroUsuario == numeroSecreto) {
        alert(`¡Super!, el numero si es ${numeroUsuario}, lo hiciste en ${intentos} ${palabraIntentos}`);
        break;
    } else {
        if(numeroUsuario > numeroSecreto){
            alert("El numero secreto es menor");
        } else{
            alert("El numero secreto es mayor");
        }
    }
    palabraIntentos = "Intentos";
    
}

El error que pude notar estaba en este bloque de codigo:

if(intentos > maximosIntentos);{
            alert("¡Llegaste al máximo de intentos permitidos!");
            break;}

El problema era que en la parte if(intentos > maximosIntentos); tienes un punto y coma luego del parentesis, eso hacia que solo hiciera la comparacion pero que no ejecutara nada.

alert("¡Llegaste al máximo de intentos permitidos!");
            break;}

Entons el lenguaje tomaba el codigo que esta despues, como si estuviese fuera de la condicion, osea que siempre se ejecutaria.

Espero haber resuelto tus dudas, Saludos :)

Buenos Dias.

Tenia el mismo problema; que el compañero..Dangel.

Muchas gracias; por compartir...@Edgar Zuniga. También de los errores; se aprende!!

Saludos.