黑马程序员技术交流社区

标题: 关于b=(++a)+(++a) [打印本页]

作者: kingloveyy    时间: 2014-9-22 23:48
标题: 关于b=(++a)+(++a)
刚看到一道题目是这样的:
int a=3,b;
b=(++a)+(++a);
在电脑上面运行的结果是:9
这是为什么呢?表示很不解!感觉结果应该是10,求指教

作者: AngleMGG    时间: 2014-9-22 23:59
这个表达式涉及运算优先级,括号里优先级最高,从左往右,首先运算第一个++a得a=4,表达式变为b=(4)+(++a),其次运算第二个++a,即++4,得a=5,表达是再变为b=(4)+(5),最终结果就是b = 9了!
作者: 臭和尚    时间: 2014-9-23 00:01
  1. class NumberTest {
  2.         public static void main(String[] args) {
  3.                 int a =3,b;
  4.                 b =(++a)+(++a);

  5.                         System.out.println(b);
  6.         }
  7. }
复制代码

是不是要得到b的值呢?
++a就是先+1后运算,a第一次++a变成4,第二次变成5,只进行一次,所以加起来是9
作者: kingloveyy    时间: 2014-9-23 00:02
AngleMGG 发表于 2014-9-22 23:59
这个表达式涉及运算优先级,括号里 优先级最高,从左往右,首先运算第一个++a得a=4,表达式变为b=(4)+(++a) ...

受教了,有点搞糊涂了~~~~
作者: kingloveyy    时间: 2014-9-23 00:03
臭和尚 发表于 2014-9-23 00:01
是不是要得到b的值呢?
++a就是先+1后运算,a第一次++a变成4,第二次变成5,只进行一次,所以加起来是9 ...

一看就是搞java 的,直接上java代码了~~~谢啦
作者: 臭和尚    时间: 2014-9-23 00:05
kingloveyy 发表于 2014-9-23 00:03
一看就是搞java 的,直接上java代码了~~~谢啦

没事,一起努力,加油!
作者: 高三那年的球球    时间: 2014-9-23 00:10
第一个++a 是4,第二个++a是5
作者: kingloveyy    时间: 2014-9-23 00:16
高三那年的球球 发表于 2014-9-23 00:10
第一个++a 是4,第二个++a是5

enenen~~~~thanks!!
作者: kingloveyy    时间: 2014-9-23 00:17
臭和尚 发表于 2014-9-23 00:05
没事,一起努力,加油!

我也是搞java的,还是看着java代码亲切啊,嘻嘻
作者: fantacyleo    时间: 2014-9-23 00:38
这个题目根本就没有唯一答案:http://bbs.itheima.com/thread-128465-1-1.html
作者: 静水流华    时间: 2014-9-23 07:58
你苹果笔记本多少钱?
作者: kingloveyy    时间: 2014-9-23 09:13
静水流华 发表于 2014-9-23 07:58
你苹果笔记本多少钱?

目前还是虚拟机中,正在抢修中~~~





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2