2017-10-17 4 views
0

Bonjour Je suis un nouveau membre de stackoverflow car je cherche de l'aide. J'ai actuellement commencé à apprendre node.js et j'ai commencé à écrire des programmes en ligne de commande très simples pour me familiariser avec ça, etc. Cependant, j'ai des problèmes. Je fais un jeu où le programme génère un nombre aléatoire entre 1 et 10 et l'utilisateur doit deviner ce que le nombre est dans les 3 essais. Il utilise une boucle while. Dans la boucle while, il y a une instruction break dans une condition, mais cela déclenche une erreur et j'apprécierais vraiment de l'aide. Les chances sont que je suis soit un peu stupide et manque quelque chose ou c'est (pour le moment) simplement un peu trop difficile à ce stade pour moi comme je l'ai très nouveau. L'erreur que je reçois est:

"
break;
^^^^^^
SyntaxError: déclaration de rupture illégale

"Node.js - erreur de rupture while-loop Inside Condition

Voici le code

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; 
     } 
    } 
}) 

J'ai le sentiment que c'est plus simple que je ne le pense, mais de l'aide serait géniale. Merci.

Répondre

1

Vous essayez d'utiliser break et continue à l'intérieur de la fonction de rappel prompt.get plutôt qu'à l'intérieur de la boucle while.

Pour quitter l'exécution du rappel, utilisez simplement return;. Pour rompre le cycle while, vous pouvez par exemple déclarer une variable avant la boucle while, ajouter cette variable à la condition while`, puis ajuster la valeur de cette variable dans le rappel.

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 
     } 
    } 
} 

Je parie aussi que votre appel prompt.get ne reviendra pas la valeur, mais ce sera plutôt accessible dans le rappel (de result).

+0

Ah je comprends. Merci beaucoup pour votre aide :) – petrexxy