2017-10-17 70 views
0

你好我是一个新的成员的stackoverflow,因为我正在寻找一些帮助。我目前已经开始学习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; 
     } 
    } 
}) 

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

回答

1

您正在尝试使用breakcontinue内部的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)。

+0

啊我明白了。非常感谢你的帮助 :) – petrexxy