我想知道如何在 Javascript 中将 and (&&) 与 or (||) 结合起来。
我想检查 a 和 b 是否都等于 1,或者 c 和 d 是否都等于 1。
我试过这个:
if (a == 1 && b == 1 || c == 1 && d == 1)
{
//Do something
}
但它不起作用。
有人知道吗?
我想知道如何在 Javascript 中将 and (&&) 与 or (||) 结合起来。
我想检查 a 和 b 是否都等于 1,或者 c 和 d 是否都等于 1。
我试过这个:
if (a == 1 && b == 1 || c == 1 && d == 1)
{
//Do something
}
但它不起作用。
有人知道吗?
运算符优先级可以通过将表达式放在括号之间来覆盖。
if ((+a == 1 && +b == 1) || (+c == 1 && +d == 1)) // Use brackets to group them
{
// your code
}
这将防止您遇到类似的情况if(0&&0 || 1&&1)
。
好吧,既然我已经告诉其他所有人(除了大卫)他们的答案是错误的,让我给他们同样的机会来骚扰我。
如图所示,您现有的代码应该已经完成了您所描述的工作。但是当你说:
“我想检查 a 和 b 是否都等于 1,或者 c 和 d 是否都等于 1。”
...您使用“任何一个”一词意味着您要检查以下条件中的一个且只有一个是否为真:
也就是说,您希望一对变量为 1,但您不希望所有四个变量同时为 1?
如果是这样,那就是异或运算,在 JS 中是^
运算符:
if ((a == 1 && b == 1) ^ (c == 1 && d == 1)) {
请注意,与逻辑 OR运算符不同,您必须在表达式的 AND部分||
周围添加括号,因为它具有更高的优先级。(实际上是一个按位运算符,但它在这里对你有用,因为你将使用它的操作数都是布尔值。)&&
^
^
放置一些额外的括号来区分和 n 或条件
if ((a == 1 && b == 1) || (c == 1 && d == 1))