嗨客网搜索
Java开发环境搭建
Java方法
运算符优先级

运算符优先级

在上一节中我们详细表述了各个 运算符,每个运算符都是有优先级的。下面列出各个操作符的优先级,数字越小表示优先级越高。

优先级 运算符 组合性
1 () 括号运算符 由左至右
1 [] 方括号运算符 由左至右
2 !、+(正号)、-(负号) 一元运算符 由右至左
2 ~ 位逻辑运算符 由右至左
2 ++、– 自增与自减运算符 由右至左
3 *、/、% 算数运算符 由左至右
4 +、- 算数运算符 由左至右
5 <<、>> 位左移、右移运算符 由左至右
6 >、>=、<、<= 关系运算符 由左至右
7 ==、!= 关系运算符 由左至右
8 &(位运算符 AND) 位逻辑运算符 由左至右
9 ^(位运算符 XOR) 位逻辑运算符 由左至右
10 |(位运算符号 OR) 位逻辑运算符 由左至右
11 && 逻辑运算符 由左至右
12 || 逻辑运算符 由左至右
13 ?: 三目运算符 由右至左

案例

我们可以用下面的例子,计算 a++ - --b * ++a / b-- >> 2 % a--; 的值。

package com.haicoder.net.basic; public class OperatorTest { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)"); int a = 5; int b = 4; int c = a++ - --b * ++a / b-- >> 2 % a--; System.out.println("第一步 :" + (6 - 3 * 7/2 >> 2 % 6)); //第一步计算 ++ 和 -- System.out.println("第二步: " + (6 - 10 >> 2)); //计算 * / % System.out.println("第三步:" + (-4 >> 2)); //计算 - System.out.println("最终结果: " + c); } }

运行结果如下:

18 运算符优先级.png

按照表格中的优先级,我们先计算了 ++-- 操作符,然后根据算数法则,计算了 */% ,然后计算了 - 。最终计算 >> 。得到结果。

嗨客网顶部