JAVA问题:int x =1,y=2,z =3;则语句 y+=z- - /++x的值是:

兄弟,打扰一下,JAVA问题:int x =1,y=2,z =3;则语句 y+=z- - /++x的值是:
最新回答
八月的雨季

2024-07-02 05:33:44

x=2,y=3,z=2
月亮望见了小鱼的结果正确,过程分析不对。woniu157的结果就错了。
都是因为++和--这两个运算符。递增和递减运算符出现在变量的前面和后面时优先级是不一样的。出现在变量前时,优先级最高要先算递增、递减的值,再参与其他运算符号的操作。出现在变量后时,优先级降低,先参与其他运算符号的运算,再算递增、递减。
y+=z--/++x;这里要注意的就是这两个递增和递减运算。
++x要先算,所以x就已经先等于2了。
然后是z--/2,刚才说了--在z 后面,所以先算/,就是3/2,结果等于1,之后z才--,z等于2。
最后y+=1;y的值为3.
冷天

2024-07-02 04:47:48

值应该是y=3 x=2 z=2吧
因为y=y+z--/++x
z--=3
++x=2
y=2
y+z--/++x=2+3/2=3
此时 x=2 z=2
其实楼主吧结果输出一下完全就知道了啊...
甜心

2024-07-02 01:15:38

这其实就是优先级的问题
首先++,--优先级高于*,/故应先算z++和++X所以这句可以转换为
y=y+(z++)/(++x)
y=4;
x=2;
z=4;
我的眼泪因为你悲伤。

2024-07-02 08:37:19

这一句相当于 y = y + (z--) / (++x) = 2 + 3/2= 3
运算完之后,z=2, x=2
夏迟归

2024-07-02 10:33:17

我运行过了x=2;y=3.5;z=2.本来我觉得就是这个结果,为保险起见我运行了一下证明了我的答案!希望会对你有帮助!
追问
理由呢,能不能说一下原理是什么?
追答
那好,我就给你解释一下!x,z就不用说了吧,大家的答案都一致,那就给你讲一下y的值,首先得理解单目运算符是怎么运算的,比如说一个变量k,++k的意思是先自增再参与运算,k++的意思是先参与运算再自增。所以说 y+=z- - /++x也就是说z--=3;++x=2;z- - /++x=1.5;y=y+z- - /++x=3.5!明白了吧?!