24小时热门版块排行榜    

查看: 3186  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xianbeihe110

木虫 (正式写手)

工作邮箱:hxysdju@163.com

[求助] 求大神解释下if语句中括号中的内容的作用判断求助以及输出结果时,自增自减的判断求助 已有6人参与

*********************************************************************************************

以下是实例:望大神可以通过解释该实例来帮助我理解if语句和自增自减
#include <iostream>
using namespace std;
int main()
{
        int a=3;
        if(a=5)
                cout<<a++<<endl;
        else
                cout<<a<<endl;
        return 0;
}
答案是输出5.
问题1:if(a=5)中,a=5是赋值对吧?之后不是要判断该表达式的值是否为ture或非0,则执行cout<<a++<<endl;否则执行cout<<a<<endl;
那我要为啥判断是ture或非0呢?难道是a=5(非0),所以是执行cout<<a++<<endl;语句吗?
问题2:如果问题一的答案是肯定的,那么为啥输出的值不是6,而是5呢?后自增时不是先用,后加吗?计算出来不是a++的值吗?
怎么输出的是a的值?这是为什么?为什么?为什么?
大神呐,顺便能帮我总结下这其中的规律吗?
回复此楼

» 猜你喜欢

工作联系方式:18817774880/QQ:1024015822
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

静观风云

新虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
答案是(1),至于输出为啥不是6而是5,是执行了输出后再自增,可以尝试再一次输出a,应该就是6了。
胸无大痣
7楼2014-07-02 09:20:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

liujiankeng

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
if 是判断a 是否等于5
a++是先引用,后加,即先输出a值之后再加;++a是先加,后引用。
你可以在 cout<<a++<<endl;
后再加一行 cout<<a<<endl;看看输出的是不是6
不认真你就输了
2楼2014-07-01 20:57:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

forceair

铜虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
if(a=5)这句有问题的,a=5是赋值语句,不是比较,要判断a与5是否相等,用if(a==5)这样才对。如果以你编写的,程序就认为是if(5)为真,则执行,a++就是先用再对a本身加1,所以a最后的值是6,a++的值是5.
成功与借口不能在一个屋檐下~
3楼2014-07-01 22:38:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cloudstone02

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
if (cond)语句中的 cond是逻辑值,大于0的算逻辑真,否则是逻辑假。所以,if (a =5) 括号内的运算为先,先执行a = 5的赋值运算,然后才是 if (a),这时是逻辑真,所以执行 cout << a ++ << endl.

你也可以试验一下 if (a = 0).
4楼2014-07-02 04:26:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见