我正在寻求帮助,使这个逻辑更清晰。假设每个字母都是比较语句(例如TRUE == a.foo)。每个字母表大约有30个字符长。
if ( ((a || b)
&& (c || d)) ||
((e || f)
&& (g || h)) )
有什么建议吗?
答案 0 :(得分:4)
尝试按组排列子表达式,排列括号:
if (((a || b) && (c || d)) ||
((e || f) && (g || h)))
答案 1 :(得分:4)
分解它。
int ab = a || b,
cd = c || d,
ef = e || f,
gh = g || h,
firstThing = ab && cd,
secondThing = ef && gh;
if (firstThing || secondThing)
答案 2 :(得分:1)
为了使条件正确对齐并使逻辑运算符脱颖而出,我会使用这种风格:
if (((a || b) && (c || d))
|| ((e || f) && (g || h))
...
|| ((u || v) && (w || x))) {
/* handle the successful test */
} else {
/* handle the other cases */
}
答案 3 :(得分:0)
这有一些变化,但我认为这是一种非常明确的方式:
layout_weight