优化复杂的逻辑条件

optimize complex logic condition

我遇到了像 as

这样复杂的 C 风格代码逻辑
if (A || (B && (X || Y)))
  foo();

是否有更好的方法来读取布尔值 table,或重新设计为人类可读?

尝试使用布尔变量,例如:

bool one = X || Y;
bool two = one && B;
if(A || two)

如果您想每次都打印结果。

better way

这主要是个人喜好问题。

看待 OR 和 AND 的另一种方式是将它们视为 if/elseif/elseif 或 if/if/if 结构。

所以这个

if (A || (B && (X || Y)))

会变成

if A
  foo();
else if B {
  if X
    foo();
  else if Y
    foo();
}