2014-02-23 40 views
1

我想做一個簡單的JavaScript猜謎遊戲,我的for循環不斷跳過!這裏是越來越跳過我的代碼的一部分:爲循環越過跳過javascript

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

如果您需要任何進一步的細節,只問。

+4

什麼,這是對'i + = 0' ??? – elclanrs

+0

oops ...我修正了這個問題,但還是一無所獲......它應該是i + = 1 – lobuo

+0

只需使用i ++;除了'我===試''不好迭代! – goseo

回答

0

當你寫:

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

循環,只要重複條件i === tries爲真。例如,如果tries爲3,則在第一次迭代中該條件不成立,並且循環立即結束。

你應該寫:

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

這有幫助。感謝:D – lobuo

0

此外,您需要使用parseInt()功能在用戶的輸入。

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

代替

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

爲什麼downvote,他檢查類型也'猜測數字=== numberToGuess'? –

+1

@SumanBogati因爲類型無關緊要,因爲無論'Math.floor'後面的數字如何,它都是數字。 –

+0

@ Qantas94Heavy - ? –

2

不應該的是這樣的?:

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

您可能想解釋兩者之間的區別,並提供編輯的代碼。 –

+0

哎呀...沒有注意到你我做了<嘗試。這解決了它。謝謝:D – lobuo

+1

真的嗎?我進入了3次嘗試,它的工作 – juvian