A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kingloveyy 中级黑马   /  2014-9-22 23:48  /  2303 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚看到一道题目是这样的:
int a=3,b;
b=(++a)+(++a);
在电脑上面运行的结果是:9
这是为什么呢?表示很不解!感觉结果应该是10,求指教

评分

参与人数 1黑马币 +5 收起 理由
高三那年的球球 + 5 赞一个!加油

查看全部评分

11 个回复

倒序浏览
这个表达式涉及运算优先级,括号里优先级最高,从左往右,首先运算第一个++a得a=4,表达式变为b=(4)+(++a),其次运算第二个++a,即++4,得a=5,表达是再变为b=(4)+(5),最终结果就是b = 9了!
回复 使用道具 举报
  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
回复 使用道具 举报
AngleMGG 发表于 2014-9-22 23:59
这个表达式涉及运算优先级,括号里 优先级最高,从左往右,首先运算第一个++a得a=4,表达式变为b=(4)+(++a) ...

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

一看就是搞java 的,直接上java代码了~~~谢啦
回复 使用道具 举报
kingloveyy 发表于 2014-9-23 00:03
一看就是搞java 的,直接上java代码了~~~谢啦

没事,一起努力,加油!
回复 使用道具 举报
第一个++a 是4,第二个++a是5
回复 使用道具 举报
高三那年的球球 发表于 2014-9-23 00:10
第一个++a 是4,第二个++a是5

enenen~~~~thanks!!
回复 使用道具 举报
臭和尚 发表于 2014-9-23 00:05
没事,一起努力,加油!

我也是搞java的,还是看着java代码亲切啊,嘻嘻
回复 使用道具 举报
这个题目根本就没有唯一答案:http://bbs.itheima.com/thread-128465-1-1.html
回复 使用道具 举报
静水流华 来自手机 中级黑马 2014-9-23 07:58:19
11#
你苹果笔记本多少钱?
回复 使用道具 举报
静水流华 发表于 2014-9-23 07:58
你苹果笔记本多少钱?

目前还是虚拟机中,正在抢修中~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马