为了账号安全,请及时绑定邮箱和手机立即绑定

为什么下面程序的输出是 25?

为什么下面程序的输出是 25?

撒科打诨 2021-06-15 13:01:55
我在解释下面的程序时尝试了很多,但没有达到一个点。class Example{static int a = 9;public static  void main(String...args) {    System.out.println(a + 3 + 3 * m1() + a* m1() + 1 + a);}static int m1(){    return (a =2);}}
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

您必须按操作顺序分组,并认为这a是一个静态字段;因此,一旦更新,它将保持更新(如 2),直到其他内容对其进行修改:


9 + 3 + (3 * 2) + (2 * 2) + 1 + 2  

12 + 6 + 4 + 3  

18 + 7  

25  


查看完整回答
反对 回复 2021-06-17
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

您可以在此处查看运算符优先顺序。


当您执行程序时,它将从左到右开始运行。调用时 m1(),您分配a=2并返回此值。所以在 a = 2 之后你的等式如下:


9 + 3 + 3 * 2 + 2 * 2 + 1 + 2

9 + 3 + 6 + 4 + 1 + 2

25


查看完整回答
反对 回复 2021-06-17
  • 2 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信