Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
Javascript: problema con el ciclo while que no funciona

En el siguiente script, estoy tratando de obtener una función para encontrar un número aleatorio elegido por el sistema. Para ayudarme a encontrar el número: Cuando el número a buscar es más pequeño que el que ingresé en la interfaz: Recibo un mensaje de que el número a encontrar es más pequeño Cuando el número a encontrar es más grande que el que ingresé en la interfaz: Recibo un mensaje de que el número a buscar es más grande Cuando encuentro el número, recibo un mensaje que me dice que he encontrado el número en xxx intentos. Cuando encuentro el número de una vez, quiero cambiar prueba por prueba en el mensaje

Cuando giro el código a continuación, solo tengo un cuadro para preguntarme cuál es el número que debo adivinar. Entonces no pasa nada. ¿Puede ayudarme a solucionar los problemas de código en mi script a continuación? ¿Podría indicar también si mi enfoque es correcto para contar la cantidad de intentos en el código a continuación? ¿Cómo procederías?

 function askValue() { var answer = window.prompt( "Guess the number, enter a number between 1 and 10" ); // keep the answer to use it in the loop if (!answer || isNaN(answer)) { console.log("Please enter a valid number"); } else { return answer; } } function guessnumber() { var secret_number = Math.floor(Math.random() * 10) + 1; var guess = askValue(); var attempts; var i = 0; var resultMessage = "You won, you take"; while (win == false) { attempts++; if (guess < secret_number) { console.log("The secret number is bigger"); i++; } else if (guess > Secret_number) { console.log("The secret number is smaller"); i++; } else if (guess == secret_number) { win = true; if (i == 1) { var attempt_word = " "; attempt_word = "attempt"; } else if ((attempt_word = "attempts")) { resultMessage += Number(i).toString() + attempt_word; } } console.log(resultMessage); } } // call the function guessnumber();

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hago que su código funcione corrigiendo muchos errores y fallando algunos de ellos:

  • usando var que es antiguo y es mejor usar la palabra clave let para declarar la variable.
  • comprobando si el número entre 1 y 10: if (+answer < 1 || +answer > 10)
  • prefijo + , es solo una abreviatura de la parseInt() para convertir una cadena en un número, ya que la cadena de retorno del mensaje no es un número
  • muchos mas... si no entiendes algo deja un comentario y te explico!
     function askValue() { let answer = window.prompt( "Guess the number, enter a number between 1 and 10" ); // keep the answer to use it in the loop if (!answer || isNaN(answer)) { alert("Please enter a valid number"); } else if (+answer < 1 || +answer > 10) { alert("Please enter a number between 1 and 10"); } else { return +answer; } } // Better using `let` than `var` function guessnumber() { let secret_number = Math.floor(Math.random() * 10) + 1; let guess = askValue(); let attempts = 0; //initialse attempts with zero let i = 0; let resultMessage = "You won, you take "; let win = false; //declare win while (win == false) { attempts++; if (guess < secret_number) { alert("The secret number is bigger"); i++; guess = askValue(); } else if (guess > secret_number) { //s lowercase not capital alert("The secret number is smaller"); i++; guess = askValue(); } else if (guess == secret_number) { win = true; resultMessage += attempts + " attempt" + (i != 1 ? "s" : ""); alert(resultMessage); } else { guess = askValue(); } } } // call the function guessnumber();
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda