在While循环中将整个或单独的多个条件否定

时间:2016-06-21 17:26:26

标签: javascript while-loop multiple-conditions negation

我试图理解为什么下面的代码不起作用,即使它的变体有效。我的理解最终都意味着同样的事情。(我很确定我错了,但不知道为什么)

这是有效的

while (!(luc === 'rock' || luc === 'paper' || luc === 'scissor')) {

这不起作用

while (luc !== 'rock' || luc !== 'paper' || luc !== 'scissor')) {

这是完整的背景

var uc = prompt('Choose between Rock, Paper and Scissor')
var luc = uc.toLowerCase();
while (!(luc === 'rock' || luc === 'paper' || luc === 'scissor')) {
  var uc = prompt('You did not select between rock paper and scissor')
  var luc = uc.toLowerCase();
}
console.log(uc)

1 个答案:

答案 0 :(得分:0)

或运算符(||)查看这两个条件是否真实。因此,适合您的情况是查找用户输入是否为摇滚,纸张或剪刀,然后否定该值。

例如,如果输入不是摇滚,则第二种情况。让我们假设输入是剪刀(有效输入),但检查不是摇滚是真的,因此整个或链将由于至少存在一个真值而评估为真。