Node.js - while循环打破错误内部条件
问题描述:
你好我是一个新的成员的*,因为我正在寻找一些帮助。我目前已经开始学习node.js,并开始编写一些非常简单的命令行程序来熟悉它等等。但是,我遇到了一些麻烦。我正在制作一个游戏,程序生成1到10之间的随机数字,用户必须猜测3次尝试中的数字。它使用一个while循环。在while循环中它有一个条件中的break语句,但它触发了一个错误,我真的很感谢一些帮助。有可能是我要么有点愚蠢,要么错过了一些东西,或者在现阶段对我来说简直太难了,因为我很新。 我收到的错误是:
“
突破;
^^^^^^
语法错误:非法break语句
”Node.js - while循环打破错误内部条件
下面是代码
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
condition`然后调整回调内部的变量的值。
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
)。
啊我明白了。非常感谢你的帮助 :) – petrexxy