a++和++a属于一元运算,优先级高于二元和三元运算,然后是算术运算按基本规律就行 先乘除后加减!
还有值得注意++在前和++在后的区别。a++是先返回然后对自身进行加1,++a是先对自身进行加1后返回。
如:- int i=10;
- int a=i++;
- System.out.println(a+".."+i);//输出:10...11
复制代码- int i=10;
- int a=++i;
- System.out.println(a+".."+i);//输出11...11
复制代码 我们来一起算一算- int a=10;
- 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了。
其实楼主也没必要纠结这个优先级的顺序,实在忘记了优先级的顺序,我们可以人为的通过括号来进行控制。我想楼主应该是不怎么理解++在前和++在后的效果 |