在C语言语言的if语句中安排2乘2条件

YiF*_*Fei 4 c c++

编程时,我通常会将两组条件组合在一起,例如:

if (A && B){...}
else if (!A && B){...}
else if (A && !B){...}
else if (!A && !B){...}
Run Code Online (Sandbox Code Playgroud)

它也可以使用嵌套的if语句来解决.

if (A){
    if (B) {...}
    else {...}
}
else {
    if (B) {...}
    else {...}
}
Run Code Online (Sandbox Code Playgroud)

编辑:一些新的想法,我首先评估A和B并存储为临时变量(然后作为第一种方法)如果A和B的评估都没有副作用?


所以我的问题是它们之间的性能差异以及它们的可读性如何?

如果重要的话我用C++编写代码.

Rob*_*obᵩ 5

这两个案子不一样.在第二种情况下,AB将每一个被精确地计算一次.在第一种情况,AB将评估的次数,这取决于它们的值.

虽然这几乎可以肯定不会影响到典型案例的优化,将问题,如果A还是B有副作用.