for循环在javascript中被跳过

时间:2014-02-23 06:51:46

标签: javascript loops for-loop skip

我正在尝试制作一个简单的JavaScript猜谜游戏,我的for循环一直被跳过!以下是我的代码中被跳过的部分:

for (i = 0; i === tries; i += 1) {
    isSkipped = false;
    var guessedNumber = prompt("Guess your number now.");

    console.log("User guessed number " + guessedNumber);

    //check if number is correct
    if (guessedNumber === numberToGuess) {
        confirm("Hooray, you have guessed the number!");
        break;
    } else if (guessedNumber > numberToGuess) {
        confirm("A little too high...");
    } else {
        confirm("A little too low...");
    }
}

这是完整的代码:

//declaring variables
var numberToGuess;
var tries;
var i;
var isSkipped = true;

var confirmPlay = confirm("Are you ready to play lobuo's guessing game? The number for you to guess will be a number ranging from 1 to 25."); //does the user want to play?

if (confirmPlay === true) {
    console.log("User wants to play");
} else {
    window.location = "http://lobuo.github.io/pages/experiments.html";
} //if user wants to play, let them play, else go to website homepage

numberToGuess = Math.floor((Math.random() * 25) + 1); //sets computer-generated number

tries = prompt("How many tries would you like?"); //gets amount of tries
tries = Math.floor(tries); //converts amount of tries to integer from string

for (i = 0; i === tries; i += 1) {
    isSkipped = false;
    var guessedNumber = prompt("Guess your number now.");

    console.log("User guessed number " + guessedNumber);

    //check if number is correct
    if (guessedNumber === numberToGuess) {
        confirm("Hooray, you have guessed the number!");
        break;
    } else if (guessedNumber > numberToGuess) {
        confirm("A little too high...");
    } else {
        confirm("A little too low...");
    }
}

if (isSkipped === true) {
    console.log("Oh no! The for loop has been skipped!");
}

如果您需要任何进一步的细节,请询问。

3 个答案:

答案 0 :(得分:2)

不应该是这样的吗?:

for (i = 0; i < tries; i += 1) {

答案 1 :(得分:0)

您还需要在用户输入上使用parseInt()功能。

 var guessedNumber = parseInt(prompt("Guess your number now."), 10);

而不是

var guessedNumber = prompt("Guess your number now.");

答案 2 :(得分:0)

当你写:

for (i = 0; i === tries; i += 0) {
只要条件i === tries为真,循环就会重复。例如,如果tries为3,则在第一次迭代时该条件不成立,并且循环立即结束。

你应该写:

for (i = 0; i < tries; i++) {