版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shilishili/article/details/88528826
阅读完后:
- 什么是运算符优先级【掌握】
- 什么是圆括号【掌握】
前言
我们开始学习 Java 中的运算符优先级。
什么是运算符优先级
运算符是一种特定的操作,在一个表达式上,可能会存在多个运算操作,我们就需要了解这些运算符的优先级别。
根据优先级顺序我们列出了所有的运算符,表格如下:
优先级 | 运算符 | 描述 |
---|---|---|
1 | .(引用号) () [] |
句点(.)用来访问对象和类中的方法和变量; 圆括号(())用来将表达式分组; 方括号([])用于数组; |
2 | +、- ~ ++、– ! instaceof |
正负号 位逻辑运算符 递增与递减运算符 逻辑非 instanceof 运算符返回 true 或 false,这取决于该对象是否属于指定的类或其子类的一个实例 |
3 | *、/、% | 乘法、除法、取余 |
4 | +、- | 加法、减法 |
5 | >>、>>>、<< | 移位运算符 |
6 | <、>、>=、<= | 比较运算符 |
7 | ==、!= | 相等、不相等 |
8 | & | 按位与运算符(AND) |
9 | ^ | 按位异或运算符(XOR) |
10 | | | 按位或运算符(OR) |
11 | && | 逻辑与运算符(逻辑 AND) |
12 | || | 逻辑或运算符(逻辑 OR) |
13 | ? : | 三元运算符 |
14 | =、+=、-=、*=、/=、%= | 赋值运算符 |
上面表格中列出的运算符越靠近顶端,运算符的优先级别越高,优先级较高的运算符先进行计算,相对较低的后计算。
当表达式中的运算符出现优先级相同时,左边的要比右边的先被计算,排在越前面的运算符的优先级越高。特别注意的,赋值运算符从右到左计算的。
根据上面优先级表格,除法运算符的优先级高于减法运算符的优先级,首先计算除法后再计算减法。示例代码如下:
int x = 10 - 6 / 2;
System.out.println(x); // 输出 7
根据上面优先级表格,两个运算符的优先级相同,则左边的比右边的先被处理。示例代码如下:
int y = 10 - 6 + 2;
System.out.println(y); // 输出:6
圆括号
圆括号是处理表达式中运算符的优先级,如果要改变表达式计算值的顺序,可以使用圆括号将需要先计算的表达式括起来。
圆括号还可以提高表达式的可读性,如果不能一眼看出表达式的优先级,可以添加圆括号来强制转换为希望的优先级,使语句更容易理解。
根据上面优先级表格,圆括号优先级顺序最高,此时运算符优先级的顺序发生了变化,括号里面的表达式先被计算,最后再计算减法运算符。
示例代码如下:
int z = 10 - (6 + 2);
System.out.println(z); // 输出 2
在本章我们学习了:
- 运算符优先级就是运算符在计算过程中哪个先被处理
- 根据运算符的执行顺序列出了运算符的优先级列表
- 圆括号可改变表达式计算值的顺序
接下来,我们开始学习 Java 表达式与语句:Java零基础31-表达式与语句