Je suis nouveau dans ce monde de codage et apprendre javascript comme une première langue. Je suis au milieu de la solidification de mes compétences javascript que j'ai rassemblées jusqu'à présent. La question que j'ai est ce que je manque dans mon code .. Peut-être qu'un pointeur n'est pas la réponse complète aidera
Le but de mon code est simplement d'obtenir des entrées des utilisateurs finaux et si les entrées utilisateur correspondent à la valeur que j'ai stocké dans ma variable numéros_to_guess que la sortie doit être "bien fait smart ass" sinon réessayer avec une limite de 3/4 tentatives p>
"Veuillez essayer à nouveau" est d'où je rencontre la boucle se produit une fois. P>
let number_of_guesses = 0 let number_to_guess = 50 let limit = 4 let guess = prompt("enter a guess") while (guess != number_to_guess) { if (guess != number_to_guess) { guess = prompt("enter another guess") number_of_guesses = number_of_guesses + 1 } else { console.log("you smart ass") } } if (number_of_guesses === limit) { console.log("you have run out goes") }
4 Réponses :
Le problème est votre condition de boucle. Vous avez pendant (devinez! = Number_to_guess); code>. En raison du point-virgule, cela raccourcit efficacement votre boucle de temps avec un corps vide. C'est pourquoi votre boucle ne fonctionne pas correctement. Essayez avec ce qui suit:
let number_of_guesses = 0;
let number_to_guess = 50;
let limit = 4;
let guess = prompt("enter a guess");
while (guess !== parseInt(number_to_guess) && number_of_guesses < limit) {
guess = prompt("enter another guess");
number_of_guesses++;
}
if(number_of_guesses===limit) {
console.log("you have run out goes");
}
else {
console.log("you smart ass");
}
Peut-être un meilleur moyen de le faire sans une boucle de temps. Cela utilise la récursion et est un moyen plus performant pour résoudre ce problème.
let number_of_guesses = 0 let number_to_guess = 50 let limit = 4 const guess = () => { let userGuess = prompt("enter a guess") if(parseInt(userGuess) !== number_to_guess){ number_of_guesses++ if(number_of_guesses < limit){ guess() } else { console.log("you have run out goes") } } else { console.log("you smart ass") } } guess()
Vous étiez vraiment proche, il suffit de poser un problème avec votre boucle tandis que:
let number_of_guesses = 0; let number_to_guess = 50; let limit = 4; let guess = prompt("Guess A Number"); while (guess != number_to_guess && number_of_guesses < limit) { var remaining = limit - number_of_guesses; if (remaining == 1) guess = prompt(`Guess Again (Last Chance)`); else guess = prompt(`Guess Again (${remaining} Tries Remaining)`); number_of_guesses = number_of_guesses + 1; if (guess == number_to_guess) alert("Correct!"); else if (number_of_guesses == limit) alert("Too Many Tries..."); }
Cheers John, j'ai fait des corrections au code actuel et cela fonctionne en utilisant votre "variable restante" ainsi que la condition de boucle supplémentaire merci !!
let number_of_guesses = 0 let number_to_guess = 50 let limit = 3 let guess = prompt("enter a guess") while (guess != number_to_guess && number_of_guesses<limit) { var remaining = limit - number_of_guesses; if (guess != number_to_guess) { guess = prompt("enter another guess" + remaining) number_of_guesses = number_of_guesses + 1 } } if (number_of_guesses === limit) { console.log("you have run out goes") } else if (guess=number_to_guess) { console.log("well done you smarty") }
Et quelle est votre question?