Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

no sale del while

Buenas tardes,

a alguno le pasa que cuando se acierta en el numero el break queda pegado no sale y sigue preguntando:

// variables

let numeroSecreto = 5;
let numeroUsuario;
let intentos = 1; // contador
let palabraVeces = 'vez'; // validador de texto en cuento al lenjuaje 

while(numeroUsuario != numeroSecreto) {
    let numeroUsuario =prompt("me indicas un numero entre el 1 al 10 por favor:");

    console.log(numeroUsuario);

    /*
    Esta parte generara la comparacion
    */

    if(numeroUsuario == numeroSecreto){
        alert(`acertaste, el numero es: ${numeroUsuario}. lo hicieste en ${intentos} ${palabraVeces}`); // parte verdadera Alt + 96
    }else{
        if(numeroUsuario > numeroSecreto){
            alert('el numero secrero es menor');
        }else {
                alert('el numero es mayor');
        }
        //incrementa el contador cuando no se acierta
        intentos = intentos + 1;
        palabraVeces = 'veces';
        if(intentos > 3){
            alert('llegaste al numero maximo de intentos');
            break;
        }
        //alert('lo siento perdiste');// parte falce
    }
}
1 respuesta

¡Hola Estudiante, espero que estés bien!

Entiendo tu problema. El error que estás experimentando se debe a que estás declarando la variable numeroUsuario dos veces, una fuera del bucle y otra dentro del bucle. Esto puede causar que el bucle while no se detenga correctamente cuando se cumple la condición.

Para solucionarlo, simplemente elimina la palabra clave let al declarar numeroUsuario dentro del bucle, de esta manera:

let numeroSecreto = 5;
let numeroUsuario;
let intentos = 1;
let palabraVeces = 'vez';

while(numeroUsuario != numeroSecreto) {
    numeroUsuario = prompt("Por favor, indícame un número entre el 1 y el 10:");

    console.log(numeroUsuario);

    if(numeroUsuario == numeroSecreto){
        alert(`¡Acertaste! El número es: ${numeroUsuario}. Lo lograste en ${intentos} ${palabraVeces}`);
    } else {
        if(numeroUsuario > numeroSecreto){
            alert('El número secreto es menor');
        } else {
            alert('El número es mayor');
        }
        intentos = intentos + 1;
        palabraVeces = 'veces';
        if(intentos > 3){
            alert('Llegaste al número máximo de intentos');
            break;
        }
    }
}

Con esta modificación, el bucle while debería funcionar correctamente y detenerse cuando se cumpla la condición. ¡Espero que esto te ayude a resolver tu problema!

Espero haber ayudado y buenos estudios!