如何更好地组织这两个连续的IF语句?

时间:2011-07-29 13:48:55

标签: c if-statement conditional logic boolean-logic

我想更好地组织以下两个if声明:

if(A || B){
    do stuff...
}

if(A && ! B){
    do other stuff...
}

有更好的方法吗?

编辑!在第二次发言前B,抱歉......

2 个答案:

答案 0 :(得分:6)

if( A || B ) {
    do some stuff;
    if( !B ) {
        do other stuff;
    }
}

但好处取决于使用情况,可能更难理解这个版本。

答案 1 :(得分:2)

对于原始问题,第二个条件是A&& B,我的回答是:

如果没有别的,您可以将第二个块嵌套在第一个块内,以防止在第一个条件失败时进行不必要的评估。否则,我没有看到任何缩短此方法的好方法......并且嵌套假定第一个块中的代码不会更新A和B,它可能会更新。

对于新问题,我的回答是在第一个检查!B,并省略第二个块的块中嵌入一个块。这相当于为新问题提供的另一个答案。