运算符优先级是指在一个表达式中,不同运算符执行运算的先后顺序。当一个表达式包含多个运算符时,优先级高的运算符会先进行运算,就像在数学运算中,乘法和除法通常会在加法和减法之前进行一样。这有助于确保表达式的计算按照预期的规则进行,避免产生歧义。
运算符优先级表格(以常见的算术和逻辑运算符为例)
优先级 | 运算符 | 说明 |
---|---|---|
1 | 括号(()) | 先计算括号内的表达式 |
2 | 一元运算符(正号 +、负号 -、逻辑非!) | 例如-3 ,!true 等操作 |
3 | 乘(*)、除(/)、取模(%) | 算术乘除运算 |
4 | 加(+)、减(-) | 算术加减运算 |
5 | 关系运算符(<、<=、>、>=) | 比较大小关系 |
6 | 相等运算符(==、!=) | 判断是否相等 |
7 | 逻辑与(&&) | 逻辑运算,左右两边都为真才为真 |
8 | 逻辑或(||) | 逻辑运算,左右两边有一个为真就为真 |
9 | 赋值运算符(=、 +=、 -=等) | 将表达式的值赋给变量 |
- 容易混淆的运算符优先级示例
- 示例一:算术运算中的乘除和加减
- 表达式
2 + 3*4
,根据运算符优先级,先计算乘法3*4 = 12
,然后再计算加法2+12 = 14
。如果不按照优先级,错误地先计算加法2 + 3 = 5
,再计算乘法5*4 = 20
,就会得到错误的结果。
- 表达式
- 示例二:逻辑运算中的与和或
- 对于表达式
true || false && false
,先计算逻辑与false && false = false
,然后再计算逻辑或true || false = true
。如果错误地先计算逻辑或true || false = true
,再计算逻辑与true && false = false
,结果就会出错。
- 对于表达式
- 示例三:混合算术和赋值运算
- 对于
a = 2+3*4
,先计算乘法3*4 = 12
,再计算加法2 + 12 = 14
,最后将14赋值给a
。如果忽略优先级,就可能得到错误的赋值结果。
- 对于
- 示例一:算术运算中的乘除和加减