2017-10-17 2 views
0

안녕하세요 저는 몇 가지 도움을 찾고 있으므로 stackoverflow의 새 멤버입니다. 나는 현재 node.js를 배우기 시작했으며 익숙해지기 위해 아주 간단한 명령 행 프로그램을 작성하기 시작했다. 그러나 나는 약간의 문제가있다. 프로그램에서 1에서 10 사이의 임의의 숫자를 생성하는 게임을 만들고 있는데 사용자는 그 숫자가 3 회 이내에 무엇인지 추측해야합니다. while 루프를 사용합니다. while 루프 내에는 조건 내에서 break 문이 있지만 오류를 발생시키고 일부 도움을 주시면 감사하겠습니다. 기회는 내가 약간 어리 석고 무언가를 놓치고 있거나 (현재 순간에) 나는이 단계에서 너무 힘들어서 매우 신기하다. 내가 받기있어 오류 :

"
휴식, 구문 에러

^^^^^^ : 불법 break 문이

"여기 Node.js - while-loop break error 내부 조건

코드는

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

while 루프보다 breakcontinueprompt.get 콜백 안에 넣으려고합니다.

콜백 실행을 중단하려면 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에서) 콜백 오히려 액세스 할 수 있습니다.

+0

아하나. 도와 주셔서 정말로 고맙습니다 :) – petrexxy