2014-10-11 51 views
0

我想讓我的用戶回答這個問題「你是男孩還是女孩?」用這兩種選擇中的一種來迫使他們選擇一種或另一種。要求用戶選擇'男孩'或'女孩'

我想我正朝着正確的方向前進,但每當我運行我的代碼時,如果選擇第二個選項,就會打嗝。

我到底做錯了什麼?

var gender = prompt("Are you a boy or a girl?").toLowerCase(); 
while (gender !== ("boy" || "girl")) { 
    gender = prompt("Please only respond with boy or girl. Now, are you a boy or a girl?"); 
} 
+0

incorect語法對不對? 'gender!='是正確的單個'=' – 2014-10-11 02:26:45

+0

「boy」|| 「女孩」是「男孩」 – Paul 2014-10-11 02:27:32

+0

更好地使用確認(「你是男孩嗎?」)。如果真的那麼男孩,如果錯過比女孩。所以它會避免收到其他值 – 2014-10-11 02:29:40

回答

0

正常狀態,將

while (gender !== 'boy' && gender !== 'girl'){ 

這是因爲("boy" || "girl")將永遠結束了爲「小男孩」,因此while看起來像while(gender !== 'boy')。在這種情況下||被稱爲「默認」運算符,巧妙地使用邏輯OR。如果左側的值爲真,它將使用左側的值。否則,它將評估(因此「默認」)正確的一面。

+0

@Barmar你是搖滾人.. – 2014-10-11 02:30:06

+1

謝謝你,男人,我不能相信,直接通過我。我想我需要休息一下。 – 2014-10-11 02:37:50

1

個人而言,我喜歡

var gender = prompt("Are you a boy or a girl?").toLowerCase(); 

while (["boy", "girl"].indexOf(gender) == -1) { 
    gender = prompt("Please only respond with boy or girl. Now, are you a boy or a girl?"); 
} 
+0

不錯的做法。就我個人而言,我會在'indexOf'上做些摺疊,就像'!〜[「boy」,「girl」]。indexOf(gender)' – Joseph 2014-10-11 02:52:06

+0

@JosephtheDreamer不能說我曾經見過。我喜歡! – theliberalsurfer 2014-10-11 02:55:02