我是这个编码世界的新手,正在学习Java语言作为第一语言。到目前为止,我正在巩固自己的JavaScript技能。我的问题是我的代码中缺少什么。.也许不是完整答案的指针会有所帮助
我的代码的目的仅仅是从最终用户那里获取输入,并且如果用户输入与我存储在我的number_to_guess变量中的值相匹配,则输出应该是“做得好聪明的驴子”,否则请再试一次3/4次尝试
“请重试”是我遇到麻烦的地方,循环只会发生一次。
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")
}
答案 0 :(得分:0)
问题是您的while循环条件。您有while (guess!=number_to_guess);
。由于使用了分号,因此可以有效地缩短带有空主体的while循环。这就是循环不正确运行的原因。请尝试以下操作:
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");
}
答案 1 :(得分:0)
可能是一种更好的方法,而无需while循环。这使用了递归,是解决该问题的更有效的方法。
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()
答案 2 :(得分:0)
您真的很亲近,而while循环遇到了问题:
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...");
}
答案 3 :(得分:0)
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")
}