运算符优先级 #

一、优先级概述 #

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