运算符优先级 #

一、优先级概述 #

1.1 优先级规则 #

运算符优先级决定了表达式中运算的顺序。优先级高的运算符先执行。

1.2 结合性 #

结合性决定了相同优先级的运算符的执行顺序:

  • 左结合:从左到右计算
  • 右结合:从右到左计算

二、优先级表 #

2.1 完整优先级表 #

从高到低:

优先级 运算符 描述 结合性
1 . 成员访问 左
2 ^ 幂运算 右
3 +、- 一元正负 右
4 <<、>>、>>> 移位 左
5 *、/、÷、\、% 乘除 左
6 +、- 加减 左
7 : 范围 右
8 ==、!=、<、>、<=、>= 比较 左
9 ===、!== 恒等 左
10 & 按位与 左
11 ⊻ 按位异或 左
12 | 按位或 左
13 && 逻辑与 右
14 || 逻辑或 右
15 ?: 三元条件 右
16 =、+=、-=、*=、/= 等 赋值 右

2.2 简化记忆 #

  1. 成员访问 .
  2. 幂运算 ^
  3. 一元运算符
  4. 乘除 * /
  5. 加减 + -
  6. 比较 < > ==
  7. 位运算 & ⊻ |
  8. 逻辑运算 && ||
  9. 赋值 =

三、优先级示例 #

3.1 算术运算 #

julia
2 + 3 * 4
(2 + 3) * 4
2 ^ 3 * 4
2 ^ (3 * 4)
-3 ^ 2
(-3) ^ 2

3.2 比较运算 #

julia
1 < 2 + 3
(1 < 2) + 3
1 + 2 < 3 + 4

3.3 逻辑运算 #

julia
true || false && false
(true || false) && false
true || (false && false)

3.4 位运算 #

julia
1 + 2 & 3
(1 + 2) & 3
1 + (2 & 3)

3.5 赋值运算 #

julia
x = y = 5
x = (y = 5)
a = b = c = 0

四、括号的使用 #

4.1 改变优先级 #

julia
2 + 3 * 4
(2 + 3) * 4

4.2 提高可读性 #

julia
a + b * c
(a + b) * c
(a && b) || c
a && (b || c)

4.3 复杂表达式 #

julia
result = ((a + b) * (c - d)) / (e + f)

五、特殊运算符 #

5.1 范围运算符 #

julia
1:2:10
1:(2:10)
(1:2):10

5.2 三元运算符 #

julia
a ? b : c
a ? b : c ? d : e
a ? b : (c ? d : e)

5.3 管道运算符 #

julia
x |> f
x |> f |> g

六、实践练习 #

6.1 练习1:计算结果 #

预测以下表达式的结果:

julia
2 + 3 * 4 ^ 2
2 ^ 3 ^ 2
1 < 2 == 2 < 3
true || false && false
1 + 2 < 3 + 4

6.2 练习2:添加括号 #

添加括号使表达式更清晰:

julia
a + b * c - d
a || b && c
x << 2 + 1
a == b + c * d

6.3 练习3:修复错误 #

修复以下表达式:

julia
x = 5
y = 10
x = y += 5

七、总结 #

本章我们学习了:

  1. 优先级规则:高优先级先执行
  2. 结合性:左结合和右结合
  3. 优先级表:完整的运算符优先级
  4. 括号使用:改变优先级和提高可读性

掌握运算符优先级是编写正确代码的基础!

最后更新:2026-03-27