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

时间:2017-10-17 14:20:13

标签: node.js while-loop break

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

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

1 个答案:

答案 0 :(得分:1)

您正尝试在break回调中使用continueprompt.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)。