c++ - 存在多个条件时 "IF"语句中的执行顺序

标签 c++ if-statement short-circuiting

<分区>

我必须使用 if 语句检查 3 种方法的结果。如果方法 1 为真,那么我只需要调用方法 2,如果方法 2 为真,那么我只需要调用方法 3。目前我正在为此目的使用以下代码。

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";
}

最佳答案

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

关于c++ - 存在多个条件时 "IF"语句中的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27797778/

相关文章:

mysql - 使用 Laravel 5.1 分页从 MySQL 数据库中提取记录

c++ - if 语句 - 短路评估与可读性

C++ 串行通信问题

c++ - Random123使用visual studio为opencl生成随机数

c++ - 成员函数后面的成员函数叫什么,我该如何编写?

c++ - 斐波那契和 'if constexpr'

if-statement - Julia:检查向量是否是数字向量

c++ - 在条件之外使用短路运算符是否合法?

ios - 短路评估中评估条件的顺序是什么

c++ - C11 独立内存屏障 LoadLoad StoreStore LoadStore StoreLoad