为什么while循环不能与AND逻辑运算符一起使用?

Kev*_*Liu 2 javascript loops while-loop

我正在尝试使用javascript运行一个超级简单的程序,但我无法理解这个问题.好的,我的代码:

var answer = prompt("Are we there yet?");

while(answer != "yes" || answer != "yeah") {
    var answer = prompt("Are we there yet?");
}

alert("Yes! We made it!");
Run Code Online (Sandbox Code Playgroud)

问题是当我在我的浏览器上运行它并键入其中一个"yes"或者"yeah"提示方法一直出现,除非我将逻辑运算符从OR(||)更改为AND(&&).

它不应该与OR(||)一起使用吗?我只是说这两个答案中的任何一个都没问题,警报可以运行吗?

我知道这是非常基本的东西,这可能是一个愚蠢的错误,但我只是一个初学者试图解决这个问题.

提前致谢.

dot*_*tom 5

你的陈述

answer != "yes" || answer != "yeah"
Run Code Online (Sandbox Code Playgroud)

如果第一个或第二个条件为真,则为true.在您的情况下,无论answer其中一个条件中的文本将始终如一.例如:

  • 如果answer="yes"那么第二个条件是真的
  • 如果answer="yeah"那么第一个条件是真的
  • 如果answer="whatever"那么两个条件都是真的

您需要使用的是&&:

var answer = prompt("Are we there yet?");
while(answer != "yes" && answer != "yeah") {
    var answer = prompt("Are we there yet?");
}
alert("Yes! We made it!");
Run Code Online (Sandbox Code Playgroud)

只有满足两个条件时才会出现这种情况.例如:

  • 如果answer="yes"那么第一个条件为假,第二个条件为真.总体结果是错误的,你离开循环.
  • 如果answer="yeah"那么第一个条件为真,第二个条件为假.总体结果是错误的,你离开循环.
  • 如果answer="whatever"两个条件都为真,则重复循环.