你好,我是stackoverflow的新成员,因为我正在寻找一些帮助。我目前已经开始学习node.js并开始编写一些非常简单的命令行程序来熟悉它等。但是我遇到了一些麻烦。我正在制作一个游戏,其中程序生成一个介于 1 和 10 之间的随机数,用户必须在 3 次尝试内猜测该数字是多少。它使用 while 循环。在 while 循环中,它在条件中有 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;
}
}
})
我有一种感觉,它比我想象的要简单,但一些帮助会很棒。谢谢。
您正在尝试在回调中使用break
和continue
prompt.get
而不是在while
循环中使用。
要退出回调的执行,只需使用 return;
。
例如,要打破 while 循环,您可以在 while
循环之前声明一个变量,将该变量添加到while
条件中,然后在回调中调整该变量的值。
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
开始)中相当可访问。