日期:2014-05-18  浏览次数:20640 次

各位大神,帮小弟看一道java计算,小弟有点困惑
 int x = 1 , y = 2 , z = 3;
 System.out.println(y+=z--/++x);

以上为题目,请问结果输出? 麻烦给出理由
java

------解决方案--------------------
z--  -->2
++x  -->2
y+=1 -->3
------解决方案--------------------
y = y + z--/++x
y = y + 2 / 2
y = 2 +1 = 3
------解决方案--------------------
就是一个--和++以及运算优先级的问题了。
------解决方案--------------------
3
java的算法机制,先++ --,再乘除 ,之后再+- 最后等于   
然而  ++ --在前面的话先加1减1再处理,反之是处理完了再加1减1
此处可以:y+=z/(1+x) ---y=y+1.5=3.5,然而 y是int类型,和四舍五入不一样,直接把小数点后面的舍去
所有最后输出的是3