【发布时间】:2017-05-28 22:11:22
【问题描述】:
if 语句中有一个复杂的条件,不知怎的,它并没有达到我想要的效果。
if (
(statementA1) ||
(statementA2) &&
(statementB) &&
(statementC)
) {
doSomething
}
A1 和 A2 不能同时为真(因为实际语句的性质)。
此外,B 和 C 都必须评估为 true 才能得出整体为 true。
所以只有true false true true 和false true true true 应该返回true;任何其他排列都应返回false。
由于其内部复杂性,这些语句用大括号括起来(包括 Math.abs()、A1 和 B 具有内部组合子语句)。
【问题讨论】:
-
如果运算符优先级对您来说很困难,您总是可以将一个 if 块拆分为多个嵌套的。但是,是的,逻辑 AND 的优先级高于 OR。
-
a || b && c解析为a || (b && c)。 -
它并不太复杂,我只是太专注于这个问题(本周重写了相同的 feauter 3 次),目前我周围没有人可以讨论它。它本身就很恶心,里面没有嵌套任何东西。
-
为什么不直接阅读the documentation?顺便说一句,当你说 *
A1和A1不能同时为真”时,我假设你的意思是 永远不会,而不是 一定不能保持的条件,对吧? -
换句话说,你是说
true true true true永远不会发生,还是说它可能发生,如果是,应该返回false(或true)?
标签: javascript node.js if-statement conditional