2015-12-29 67 views
0

只有當用戶輸入岩石,紙張或剪刀時,我才希望代碼繼續運行,但在我第二次重新輸入任何輸入後似乎仍然繼續,儘管它通過了條件在while循環中。例如,如果我鍵入「asdf」,它會要求我重新輸入輸入,但如果我再次執行「asdf」,它將退出while循環並註銷「asdf」。我希望它保持提示用戶,直到他們因此,如果用戶重新進入一個以上的時間,你返回false或退出系統進入「搖滾」,「紙」或「剪刀差」在while循環中寫入提示

var userChoice = prompt("Enter rock, paper, or scissors", "rock").toLowerCase(); 


while (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") { 
    userChoice = prompt("renter Please"); 
} 

console.log(userChoice); 
+0

這隻會工作,但似乎你想要的工作。複製/粘貼在這裏:https://jsfiddle.net/nkma2816/ – Jack

+0

很奇怪。你是對的,但它不適用於jsbin – user3737841

+0

那麼爲什麼你沒有在你的問題鏈接? – Jack

回答

0

 var userChoice = prompt("Enter rock, paper, or scissors").toLowerCase(); 
 
     while (userChoice != "rock" && userChoice != "paper" && userChoice != 
 
      "scissors") { 
 
      userChoice = prompt("renter Please"); 
 
      
 
     } 
 
     console.log(userChoice)

+0

他應該聯繫它,他說,'我希望它不斷提示用戶,直到他們進入「搖滾」,「紙」或「剪刀」......所以你爲什麼要跳出循環? – Jack

+0

@Jack用代碼片段編輯它。他遇到的問題是他的任務 –

0

只要你分配給userChoice「紙」,「剪刀」或「搖滾」,其值的值將保持下去,如果沒有改變,因此while循環不會重新啓動。

嘗試運行任何代碼之後while循環添加像這樣的東西。

while (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") { 
    userChoice = prompt("renter Please"); 
} 

console.log(userChoice); 

userChoice = 0; 

如果你的代碼嵌套在另一個循環

loop{ 
    var userChoice = prompt("Enter rock, paper, or scissors", "rock").toLowerCase(); 

    var userChoice = prompt("Enter rock, paper, or scissors", "rock").toLowerCase(); 


    while (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors") { 
     userChoice = prompt("renter Please"); 
    } 

    console.log(userChoice); 
    userChoice = 0; 
}