运算符优先级表
优先级
运算符
结合性
1
()
[]
.
从左到右
2
!
+(正)
-(负)
~
++
--
从右向左
3
*
/
%
从左向右
4
+(加)
-(减)
从左向右
5
<<
>>
>>>
从左向右
6
<
<=
>
>=
instanceof
从左向右
7
==
!=
从左向右
8
&(按位与)
从左向右
9
^
从左向右
10
|
从左向右
11
&&
从左向右
12
||
从左向右
13
?:
从右向左
14
=
+=
-=
*=
/=
%=
&=
|=
^=
~=
<<=
>>=
>>>=
从右向左
从表中可以看出++的优先级比较高
但提醒楼主注意下面的情况
public
class
Test2
{
public
static
void
main(String[]
args)
{
int
a
=
5;
int
b
=
10;
a
=
++b;
System.out.println("a
=
"
+
a);
System.out.println("b
=
"
+
b);
}
}
输出结果:
a
=
11
b
=
11
代码中的
a
=
++b
要先执行++b,再执行赋值,即相当执行下面两步
(1)b
++
(++b和b++是一样的
,b执行++后就会加1,从10变为11)
(1)a
=
b;
(这里a就拥有了和b一样的值,所以a也等于11)
另一种情况:
public
class
Test2
{
public
static
void
main(String[]
args)
{
int
a
=
5;
int
b
=
10;
a
=
b++;
System.out.println("a
=
"
+
a);
System.out.println("b
=
"
+
b);
}
}
输出结果:
a
=
10
b
=
11
代码中的a
=
b++也是分两步执行的。但和上面那种情况刚好相反
(1)先执行
a
=
b
所以a就拥有了b的值。即
a
=
10
(2)
再执行
b
++
这里b++后,b就从10加1变成了11
所以楼主在遇到有++运行符和赋值运算在一起可以可以看++的位置,在前面的先执行++再执行赋值。++在后面的先执行赋值,再执行++
就这么多了,希望能对楼主有所帮助。