各位大神,帮小弟看一道java计算,小弟有点困惑

Andy猪猪侠 2013-09-05 03:47:20
int x = 1 , y = 2 , z = 3;
System.out.println(y+=z--/++x);

以上为题目,请问结果输出? 麻烦给出理由
...全文
102 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
各种飘 2013-09-05
  • 打赏
  • 举报
回复
引用 4 楼 huishou372345292 的回复:
3 java的算法机制,先++ --,再乘除 ,之后再+- 最后等于 然而 ++ --在前面的话先加1减1再处理,反之是处理完了再加1减1 此处可以:y+=z/(1+x) ---y=y+1.5=3.5,然而 y是int类型,和四舍五入不一样,直接把小数点后面的舍去 所有最后输出的是3
+1
zrl凝望遗失 2013-09-05
  • 打赏
  • 举报
回复
引用 楼主 zhujianpengzha 的回复:
int x = 1 , y = 2 , z = 3; System.out.println(y+=z--/++x); 以上为题目,请问结果输出? 麻烦给出理由
++a和a++可完全不同的哦,++a是先把a自增1,再进行其他运算或操作,而a++相反,它表示先进行运算再对a进行自增操作,--也是同样是道理。 因为x,y,z都是int型变量,所以除大运算的结果也是int型的,故而z--/++x的结果为(3/2)=1,y=y+1=3,明白了吗?先要想清楚是先自增还是后自增
___回首 2013-09-05
  • 打赏
  • 举报
回复
3 java的算法机制,先++ --,再乘除 ,之后再+- 最后等于 然而 ++ --在前面的话先加1减1再处理,反之是处理完了再加1减1 此处可以:y+=z/(1+x) ---y=y+1.5=3.5,然而 y是int类型,和四舍五入不一样,直接把小数点后面的舍去 所有最后输出的是3
  • 打赏
  • 举报
回复
就是一个--和++以及运算优先级的问题了。
剑神一笑 2013-09-05
  • 打赏
  • 举报
回复
y = y + z--/++x y = y + 2 / 2 y = 2 +1 = 3
tony4geek 2013-09-05
  • 打赏
  • 举报
回复
z-- -->2 ++x -->2 y+=1 -->3

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧