永发信息网

为什么结果是3,4,5?

答案:2  悬赏:0  手机版
解决时间 2021-02-28 14:16
为什么结果是3,4,5?
最佳答案
你要弄懂自加符号在变量前面和后面的不同。在单独使用++号时,他的意思都一样,均为变量自己自加1;
在变量前面的时候,++号的意思是先对变量进行自加,然后在执行之后的操作。
举个例子:
int a = 1;
int b ;
b =++a+1;
这时候的b=3,a=2
在变量后面的时候,++号的意思是先执行之后的操作,在进行自加.
举个例子:
int a = 1;
int b ;
b =a+++1;
这时候的b=2,a=2;
同样的道理,我们回到题目。因为x和y都执行单独的自加,所以在执行完++y后,x的值为2,y的值为3。
现在看z=(x++)+(y++),因为++号在变量的后面。所以是先执行自加操作之外的操作,再进行自加,也就是先执行z=x+y,也就是z=2+3=5,然后执行x和y的自加
所以最后x=3,y=4,z=5

追问就相当于先从左到右算出z的值 然后再返回在执行完++y的指令的基础上再单独自加?追答x++;
y++;
z=(x++)+(y++);
这是你的代码,这段代码的顺序是
x进行自加,因为x本身=1,所以自加后x的值为2
y进行自加,因为y本身=2,所以自加后x的值为3
这里因为z=(x++)+(y++)这个算式里面,++号都在变量后面,所以是先完成自加之外的操作,在进行自加。也就是说其实分为两部,第一步是z=x+y,这的x和y的值就是我们1、2步得到的值,2和3,所以才会得到z=2+3=5。然后是第二步,也就是x和y的自加,因为x和y的值已经是2和3了,所以自加后就是3和4。
这里,如果变成z=(++x)+(++y)那么就又不一样了。因为++号在变量的前面,所以这个算式的步骤是先完成x和y的自加,在进行算式的运算。也就是说,第一步是x和y都自加1,因为在1,2步的时候x和y的值为2和3,所以这时自加的值为3和4。第二步是完成z=x+y的值,就是z=3+4=7
追问感谢耐心的解答 但还是有点不明白 为什么第二步 x,y还要再自加怎么算z明白了追答你的程序是这样写的。
x++; //x进行自加+1
++y; //y进行自加+1
z=(x++)+(y++); //第1:z=x+y 第2:x进行自加+1,y进行自加+1
这是你的原程序,这样看明白了吗??追问恩 明白了 非常感谢
全部回答
逗号表达式 从左到右计算
所以 先
x++ -> x=2
y++ -> y=3
然后计算 z=(x++) + (y++);
这里 先取值 z=2+3=5
然后 x自加为3 y自加为4
于是
x=3
y=4
z=5追问为什么算完Z之后 x,y还要再自加一遍追答++运算符特性
如果是++在后 先取值 再自加
如果是++在前 先自加 再取值。追问恩 知道了 谢谢😄
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
笔记本电脑的返回键是哪一个?
戴了几次美瞳变软变薄很难戴怎么办?
Y336在什么地方啊,我要过去处理事情
长沙有没有michael kors mk 迈克.科尔斯
现在加盟舞蹈培训班会不会很麻烦?选择哪呢?
心房与心室之间有房室瓣,只能朝向心室开,在
黄金甲美甲美睫(人民广场店)这个地址在什么地
parsejson引入哪个js
哪里能交电费
恢复出厂设置时选择清除模拟SD卡有什么后果
传字营村地址有知道的么?有点事想过去
素炒蒜苔的做法步骤图,素炒蒜苔怎么做好吃
我梦见和三姨买衣服
长虹还在世界五百强吗?
动物越低等,学习能力越弱,学会某种行为中“
推荐资讯
珠海去香港有几个关口?
压缩文件在哪里
闺蜜向男朋友借钱,身为女朋友的你该怎么办?
鞋子放在鞋柜里,拿出来泛黄了怎么办?
小孩子的皮肤松松的没弹力怎么回事
天津积分落户没有房产怎么办
快乐阅读健康成长手抄报里面的内容,帮帮我吧
刘谦的那个把手穿过玻璃的魔术是怎么变的啊?
至尊女王:特工归来
我的液晶显示器一会正常一会变得发红,是怎么
6年数学问题
税务都分为哪几类
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?