为什么结果是3,4,5?
答案:2 悬赏:0 手机版
解决时间 2021-02-28 14:16
- 提问者网友:嘚啵嘚啵
- 2021-02-28 08:55
为什么结果是3,4,5?
最佳答案
- 五星知识达人网友:像个废品
- 2021-02-28 10:31
你要弄懂自加符号在变量前面和后面的不同。在单独使用++号时,他的意思都一样,均为变量自己自加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
这是你的原程序,这样看明白了吗??追问恩 明白了 非常感谢
在变量前面的时候,++号的意思是先对变量进行自加,然后在执行之后的操作。
举个例子:
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
这是你的原程序,这样看明白了吗??追问恩 明白了 非常感谢
全部回答
- 1楼网友:詩光轨車
- 2021-02-28 10:58
逗号表达式 从左到右计算
所以 先
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还要再自加一遍追答++运算符特性
如果是++在后 先取值 再自加
如果是++在前 先自加 再取值。追问恩 知道了 谢谢😄
所以 先
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还要再自加一遍追答++运算符特性
如果是++在后 先取值 再自加
如果是++在前 先自加 再取值。追问恩 知道了 谢谢😄
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯