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

Duda break

Implemento el break en mi código pero cuando llego al máximo de intentos me vuelve a pedir el número, luego de este intento si se finaliza.

let numeroSecreto = 7; let numeroUsuario =0; let intentos =1; let palabra = "intento";

while (numeroUsuario!=numeroSecreto){

numeroUsuario = prompt("Indicame un número de 1 a 10 por favor: ");
console.log (numeroSecreto);
console.log (numeroUsuario);
console.log (intentos);

if (numeroUsuario==numeroSecreto){
    alert(`Acertaste Sherlock, el número es: ${numeroSecreto}`);
    console.log(`Acertaste Sherlock, el número es: ${numeroSecreto}`);
    alert(`Lo lograste en ${intentos} ${palabra}`);
    console.log(`Lo lograste en ${intentos} ${palabra}`);
} else {
    if (numeroUsuario>numeroSecreto){
        alert("El número secreto es menor");
        console.log("El número secreto es menor");
    }else{
        alert("El número secreto es mayor");
        console.log("El número secreto es mayor");
    }
    intentos=intentos+1;
    palabra="intentos";
    alert(`Este es tu ${intentos}° intento`);
    console.log(`Este es tu ${intentos} intento`);
    console.log('Sigue Intentando');
   
    if(intentos>3){
        alert("llegaste al número máximo de intentos")
        break;
    }

}

}

2 respuestas

¡Hola Leandro!

Entiendo tu duda con el uso del break en tu código. Parece que estás tratando de limitar el número de intentos para adivinar el número secreto. La implementación del break para salir del bucle cuando se alcanza el número máximo de intentos es correcta. Sin embargo, parece que después de alcanzar el máximo de intentos, el programa sigue pidiendo un número adicional antes de finalizar.

Una forma de solucionar esto es reestructurar un poco tu código para que el break realmente termine el bucle sin pedir un número adicional. Aquí te dejo un ejemplo de cómo podrías hacerlo:

let numeroSecreto = 7;
let numeroUsuario = 0;
let intentos = 1;
let palabra = "intento";

while (numeroUsuario != numeroSecreto) {
  if (intentos > 3) {
    alert("Llegaste al número máximo de intentos");
    console.log("Llegaste al número máximo de intentos");
    break;
  }

  numeroUsuario = prompt("Indicame un número de 1 a 10 por favor: ");
  console.log(numeroSecreto);
  console.log(numeroUsuario);
  console.log(intentos);

  if (numeroUsuario == numeroSecreto) {
    alert(`Acertaste Sherlock, el número es: ${numeroSecreto}`);
    console.log(`Acertaste Sherlock, el número es: ${numeroSecreto}`);
    alert(`Lo lograste en ${intentos} ${palabra}`);
    console.log(`Lo lograste en ${intentos} ${palabra}`);
  } else {
    if (numeroUsuario > numeroSecreto) {
      alert("El número secreto es menor");
      console.log("El número secreto es menor");
    } else {
      alert("El número secreto es mayor");
      console.log("El número secreto es mayor");
    }
    intentos = intentos + 1;
    palabra = "intentos";
    alert(`Este es tu ${intentos}° intento`);
    console.log(`Este es tu ${intentos} intento`);
    console.log('Sigue Intentando');
  }
}

Con esta reestructuración, el break se activará cuando se superen los 3 intentos y el bucle se detendrá inmediatamente, evitando que se pida un número adicional.

Espero que esta solución te sea de ayuda. ¡Sigue adelante con tu aprendizaje de JavaScript!

Espero haber ayudado y buenos estudios!

Buenas noches, Ok, probé el código pero aún me sale como un 4 intento, ya no me pide de nuevo el número pero me muestra un cuarto intento.