Node.js - 内部条件的循环中断错误



你好,我是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;
        }
    }
})

有一种感觉,它比我想象的要简单,但一些帮助会很棒。谢谢。

您正在尝试在回调中使用breakcontinue 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 开始)中相当可访问。

最新更新