&& amp;& amp;& amp;& (和)在||时工作(或)不在此代码中

时间:2017-10-26 11:00:11

标签: javascript

var answer = prompt("are we there yet")

while(answer.indexOf("yes") === -1 && answer.indexOf("yeah") === -1 ){
    var answer = prompt("are we there yet")
}

alert("yay we made it");

&安培;&安培;当这两个部分都是真的时就可以工作,在这种情况下,如果我们写的是,或者是的,它会起作用,如果我们在它工作的时候只写了“是”,那就是" false"因为我们没有写同意,是的,在同一个提示中。

显然,我错了。为什么当其中一个只需要是真的时,OR不工作,我只需要写是或者是为了工作。

1 个答案:

答案 0 :(得分:0)

当你在语句中写下

时,逻辑没有什么不妥
while(answer.indexOf("yes") === -1 && answer.indexOf("yeah") === -1 )

这里当条件内部为真时执行它的主体

while(*true*) => do something

当你在提示中键入例如yes时,将false视为条件因为

(true && false) => false 这意味着虽然不再执行它的身体。

当你写||而不是&&

(true || false) => true所以while语句继续执行body

所以写代码是

while(answer.indexOf("yes") !== -1 || answer.indexOf("yeah") !== -1)