我正在关注 Teamtreehouse 上的 Javascript 轨迹,并尝试制作一款游戏。它要求用户猜测 1 到 6 之间的一个数字。用户可以猜测数字,输入较小的数字并获得另一次机会,输入较大的数字并获得另一次机会,或者根本不猜测。
var correctGuess = false;
var randomNumber = Math.floor(Math.random() * 6) +1;
var guess = prompt("I am thinking of a number between 1 and 6. What is it?");
if (parseInt(guess) === randomNumber) {
correctGuess = true;}
else if (parseInt(guess) < randomNumber) {
var guessMore = prompt("Try again! The value I am thinking of is lower than " + guess);
if (parseInt(guessMore) === randomNumber ) {
correctGuess =true;}
} else if (parseInt(guess) > randomNumber) {
var guessLess = prompt("Try again! The number I am thinking of is smaller than " + guess);
if (parseInt(guessLess) === randomNumber) {
correctGuess = true; }
}
if ( correctGuess) {
alert("Yey!");
} else {
alert("Better luck next time! The number was " + randomNumber);
};
虽然代码对我来说似乎很好,但每隔 5 次(比方说)它就会显示一个异常(尽管用户猜到了数字,但它会运行 else 语句;或者它会要求您输入一个较小的数字,只是为了发现结果实际上是一个更大的数字等等)。你必须运行代码几次才能明白我的意思。我做错了什么?
最佳答案
所以你的问题是:
or it asks you for a smaller number only to find out that the result was in fact a bigger number etc)
这是因为您的条件语句中同时包含“低于”和“小于”。我把“低于”改为“大于”。
else if (parseInt(guess) < randomNumber) {
var guessMore = prompt(
"Try again! The value I am thinking of is greater than " + guess);
if (parseInt(guessMore) === randomNumber ) {
correctGuess =true;}
}
else if (parseInt(guess) > randomNumber) {
var guessLess = prompt(
"Try again! The number I am thinking of is smaller than " + guess);
if (parseInt(guessLess) === randomNumber) {
correctGuess = true; }
}
关于javascript - 运行代码时警报显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38108880/