2014-10-11 55 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