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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 寇弘禄 中级黑马   /  2013-3-23 14:55  /  2481 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 寇弘禄 于 2013-3-23 22:30 编辑
  1. public class Test1 {
  2.         public static void main(String[] args) {
  3.                 Test2 test = new Test2();
  4.                 System.out.println(test.returnTest2());
  5.         }
  6. }

  7. class Test2 {
  8.         public int returnTest2(){
  9.                 int a = 10;
  10.                 int c = a++ + ++a*2; //这里是怎么运算的,我觉得结果是32,但是运算结果是34
  11.                 return c;
  12.         }
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

8 个回复

正序浏览
tuo1254 发表于 2013-3-23 16:54
a++和++a属于一元运算,优先级高于二元和三元运算,然后是算术运算按基本规律就行 先乘除后加减!
还有值得注 ...

谢谢,看懂了。。
回复 使用道具 举报


查啦下资料++的运算符高于+
int c = (a++) + (++a) * 2;

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
壁虎 中级黑马 2013-3-23 16:54:23
7#

a++和++a属于一元运算,优先级高于二元和三元运算,然后是算术运算按基本规律就行 先乘除后加减!
还有值得注意++在前和++在后的区别。a++是先返回然后对自身进行加1,++a是先对自身进行加1后返回。
如:
  1. int i=10;
  2. int a=i++;
  3. System.out.println(a+".."+i);//输出:10...11
复制代码
  1. int i=10;
  2. int a=++i;
  3. System.out.println(a+".."+i);//输出11...11
复制代码
我们来一起算一算
  1. int a=10;
  2. int c = a++ + ++a*2;
复制代码
按照优先级,先算++,这里有两个++,既然同级,从左往右开始算。
1. a++ a自身的值变为11了,但是++在后是先返回后再对自身进行加1的,所以就变成了这样:10 +  ++a*2//a的值虽为11了,但是你a++后的返回值还是10
2.++a*2其实就是++11*2,由于++在前所以是先对自身进行加1再返回 于是就变成了这样: 12*2结果为24
3.然后再加上10,最后的结果就是34了。

其实楼主也没必要纠结这个优先级的顺序,实在忘记了优先级的顺序,我们可以人为的通过括号来进行控制。我想楼主应该是不怎么理解++在前和++在后的效果

点评

正解  发表于 2013-3-23 18:44

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
++或者--运算符;++在后:是先计算值,后累加 ;++在前:先累加,后计算值;--同理可得;

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
楼上的都是正解,其实没有必要纠缠于谁先运算,开发中不会出现那种状况的!要改变运算顺序,()就可以轻松的解决。你懂的。。。。
回复 使用道具 举报
打错了  是自右到左
回复 使用道具 举报
a++和++a属于一元运算,优先级高于二元和三元运算,然后是算术运算按基本规律就行 先乘除后加减!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 xuqangxing 于 2013-3-23 15:06 编辑

int  c=a+++++a*2    +和++运算符同优先级  结合方向为“自右到左”(右结合性即相当于c=a+(++(++a*2))

评分

参与人数 1技术分 +2 收起 理由
黄玉昆 + 2 鼓励鼓励

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马