繁体   English   中英

请说明此程序中的条件

[英]Please explain if Condition in this program

请解释 if 语句如何在这里工作我是 C++ 的新手。

#include <iostream>
using namespace std;
int main (){

    int b=6,c=5;
    if (b++==7 && ++c==5)
    {
        b*=c;
        cout<<"IF OUTPUT IS "<<++b<<endl;
    }
    else 
        cout<<"ELSE 1ST OUTPUT "<<b--<<endl;
    cout<<"ELSE 2ND  OUTPUT IS "<<b<<endl;

    return 0 ;
}

  

在上面的代码中,因为在 if 条件中,您正在检查 post increment , (b++ ==7) 并且 b 的初始值为 6 所以编译器首先评估 b++==7 的第一个条件,只考虑 b=6 然后修改它的值为 7,因此将初始条件评估为假,因为 6==7 导致假,而对于 ++c==5,因为这是预增量,它首先将 c 的值修改为 6,然后检查条件 6=== 5 这也是假的。 因此,这两个条件都导致错误,程序控制转到代码的 else 部分。 在第一个打印语句中考虑后减量的 else 打印中,b 的值仅打印为 7,然后在下一个语句中减 1 打印 6。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM