您好我是stackoverflow的新成员,因为我正在寻求帮助。我目前开始学习node.js并开始编写一些非常简单的命令行程序来熟悉它等等。但是我遇到了一些麻烦。我正在制作一个游戏,其中程序生成1到10之间的随机数,用户必须猜测该数字在3次尝试中是什么。它使用while循环。在while循环中,它在一个条件中有break语句,但它触发了一个错误,我真的很感激一些帮助。我有可能有点愚蠢而且缺少某些东西,或者(现在)在这个阶段对我来说简直有点太难了,因为我很新。
我接收的错误是:
"
打破;
^^^^^^
SyntaxError:非法的break语句
"
这是代码
var prompt = require('prompt');
var randomNumber = Math.floor(Math.random() * 10) + 1;
prompt.start();
console.log("Guess The Random Number Between 1 And 10.");
var guesses = 0;
while (guesses < 3) {
var userGuess = prompt.get(['Guess -> '], function (err, result) {
if (userGuess == randomNumber) {
console.log("Correct! Well Done. The Number Was " + randomNumber +
". You Guessed It In " + guesses + " Trys.");
break;
}
else {
guesses = guesses + 1;
console.log("Wrong Number. Guess Again.");
continue;
}
}
})
我觉得它比我想象的要简单,但有些帮助会很棒。感谢。
答案 0 :(得分:1)
您正尝试在break
回调中使用continue
和prompt.get
,而不是在while
循环内。
要退出回调的执行,只需使用return;
。
要打破while循环,您可以在while
循环之前声明变量,将该变量添加到while
条件`,然后在回调中调整该变量的值。 / p>
var guesses = 0;
var breakTheLoop = false;
while (guesses < 3 && !breakTheLoop) {
prompt.get(['Guess -> '], function (err, result) {
if (wannaBreak) {
return breakTheLoop = true;
} else {
guesses = guesses + 1;
console.log("Wrong Number. Guess Again.");
return; // just return instead of continue
}
}
}
我还打赌,您的prompt.get
来电不会返回该值,但可以在回调中轻松访问(来自result
)。