if 中的多个条件 - javascript 中的 else

multiple conditions in an if - else in javascript

我正在尝试制作一个只接受几个值的程序。因此,如果 "e" 变量不是 1 或 2 或 3,表示数字不正确,但如果值等于这些数字,则 else 部分是 运行.

所有这些听起来都非常初级且易于实施,但我 运行 代码和每个值都设置为 "e" 运行s if部分。

代码如下:

var e;

e=parseFloat(prompt("Input e",""));

 if(e!=1 || e!=2 || e!=3)
  {
  alert("put again E");
  }

 else
  {
  //whatever
  }

英文你说的是"not 1 or 2 or 3",但是写成!(e == 1 || e == 2 || e == 3);或者,您可以使用逻辑上等效的 "not 1, and not 2, and not 3",表示为 e != 1 && e != 2 && e != 3.

你写的是"not 1 or not 2 or not 3"。如果值为 1,则它不是 2(也不是 3),因此 "not 1 or not 2 or not 3" 仍然为真。事实上,它对任何值都是正确的,因为其中至少有两个(如果不是全部三个)都是正确的。

您应该使用 == 而不是 !=,例如:

 if(e==1 || e==2 || e==3)//then re enter value

你的 if 意思是如果 e 既不是 1,2,3 则要求用户重新输入值。

由于 e 不能同时具有 1,2 和 3 的值,因此您的条件总是会评估为真。你的版本是

if the value is different from 1 or different from 2 or different from 3 then do this.

所以你需要把它改成更像

的东西

if the value is not either 1 or 2 or 3 then

if(!(e == 1 || e == 2 || e == 3)){...}

或者你可以

if(e != 1 && e != 2 && e != 3){...}

会读

if the value isn't 1 and isn't 2 and isn't 3

这两个选项的结果是一样的。

因为||表示或。

if(e!=1 || e!=2 || e!=3)

如果你输入 e = 1 你会得到

if(false OR true OR true)

当然,计算结果为真。

你想要 &&,这意味着和,导致:

if(e!=1 && e!=2 && e!=3)

如果你想维护你的代码结构。或者您可以听取其他人的建议,将您的 "else" 代码放入 "if" 块并使用 ==.

原因很简单。例如,如果您在条件 returns false 的第一部分输入值 1,但其他两部分 return true,则条件可以可以这样读:

if( false || true || true ) {
 ...
}

因此无论输入什么,总会有 2 个 true 值与一个 false 值相对。要得到你想要的,请使用 && 而不是 ||