执行顺序" IF"多个条件出现时的陈述

时间:2015-01-06 11:33:47

标签: c++ if-statement short-circuiting

我必须使用if语句检查3个方法的结果。如果method1为true,那么只需要调用method2,如果method2为true,那么我只需要调用method3。目前我正在使用以下代码。

if(method1())
{
    if(method2())
    {
        if(method3())
        {
            cout << "succeeded";
        }
        else
        {
            cout << "failed";
        }
    }
    else
    {
        cout << "failed";
    }
}
else
{
    cout << "failed";
}

我想只使用一个if语句并调用其中的所有3个方法。所以我想的是以下方式。以下代码是否与上述代码相同或不同?

if(method1() && method2() && method3())
{
    cout << "succeeded";
}
else
{
    cout << "failed";
}

1 个答案:

答案 0 :(得分:2)

结果将是相同的,因为&&短路运算符。这意味着如果第一个操作数的计算结果为false,则不会计算第二个操作数。