对于 if 语句,我有相当复杂的逻辑。我目前正在使用:
if(numerical_evaluation) {
if ((!boolOne && boolTwo) || !boolThree){
//do stuff
}
}
其中 boolOne、boolTwo 和 boolThree 是逻辑操作(可能是x < y
“myObject->getBool”等)。
我不知道如何在不将||
条件嵌套在第三条if
语句中的情况下使其易于阅读的更好方法。
我遇到困难的原因是or
运营商使它看起来if
可能需要第三个陈述。
一种选择是这样做。
或者,我可以做类似的事情
if(x <= y) {
bool boolFour = false;
if ((!boolOne && boolTwo))
boolFour = true;
if (boolFour || !boolThree){
//do stuff
}
}
甚至可以创建一个单独的函数来尝试将所有内容或组合验证为单个返回值?
或者,我可以尝试以不需要的方式重组代码,这可能需要大量时间来完成。
我的问题:格式化复杂问题的最佳方式是什么if
- 其中包括更复杂的评估而不仅仅是if (!A && B && C)
变化?||
当您将语句与&&
语句组合到一行中时,似乎事情变得无可救药地难以理解(尤其是当您对 boolOne、boolTwo 等进行复杂的评估时) 。是否遵循相同的原则 -格式化具有多个条件的 if 语句的最佳方式- 也适用于此处,或者在使用各种逻辑运算符时是否存在根本差异?