学科分类
目录
Java基础

运算符的优先级

在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,通常把这种顺序称作运算符的优先级。接下来通过一张表来展示Java中运算符的优先级,其中数字越小表示优先级越高,如表1所示。

表1 运算符优先级

优先级 运算符
1 . [] ()
2 ++ -- ~ !
3 * / %
4 + -
5 << >> >>>
6 < > <= >=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = *= /= %= += -= <<= >>= >>>= &= ^= |=

根据表1所示的运算符优先级,分析下面代码的运行结果。

int a =2;
int b = a + 3*a;
System.out.println(b);    

运行结果为8,由于运算符“”的优先级高于运算符“+”和“=”,因此先运算3a,得到的结果是6,再将6与a相加,最后通过运算符“=”赋值给变量b,得到最后的结果8。

int a =2;
int b = (a+3) * a;
System.out.println(b); 

运行结果为10,由于运算符“()”的优先级最高,因此先运算括号内的a+3,得到的结果是5,再将5与a相乘,最后通过运算符“=”赋值给变量b,得到最后的结果10。

其实没有必要去刻意记忆运算符的优先级。编写程序时,尽量使用括号“()”来实现想要的运算顺序,以免产生歧义。

点击此处
隐藏目录