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
值相对。要得到你想要的,请使用 &&
而不是 ||
。
我正在尝试制作一个只接受几个值的程序。因此,如果 "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
值相对。要得到你想要的,请使用 &&
而不是 ||
。