运算符优先级 #
一、优先级概述 #
1.1 优先级规则 #
运算符优先级决定了表达式中运算的顺序。优先级高的运算符先执行。
1.2 结合性 #
结合性决定了相同优先级的运算符的执行顺序:
- 左结合:从左到右计算
- 右结合:从右到左计算
二、优先级表 #
2.1 完整优先级表 #
从高到低:
| 优先级 | 运算符 | 描述 | 结合性 |
|---|---|---|---|
| 1 | . |
成员访问 | 左 |
| 2 | ^ |
幂运算 | 右 |
| 3 | +、- |
一元正负 | 右 |
| 4 | <<、>>、>>> |
移位 | 左 |
| 5 | *、/、÷、\、% |
乘除 | 左 |
| 6 | +、- |
加减 | 左 |
| 7 | : |
范围 | 右 |
| 8 | ==、!=、<、>、<=、>= |
比较 | 左 |
| 9 | ===、!== |
恒等 | 左 |
| 10 | & |
按位与 | 左 |
| 11 | ⊻ |
按位异或 | 左 |
| 12 | | |
按位或 | 左 |
| 13 | && |
逻辑与 | 右 |
| 14 | || |
逻辑或 | 右 |
| 15 | ?: |
三元条件 | 右 |
| 16 | =、+=、-=、*=、/= 等 |
赋值 | 右 |
2.2 简化记忆 #
- 成员访问
. - 幂运算
^ - 一元运算符
- 乘除
* / - 加减
+ - - 比较
< > == - 位运算
& ⊻ | - 逻辑运算
&& || - 赋值
=
三、优先级示例 #
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
七、总结 #
本章我们学习了:
- 优先级规则:高优先级先执行
- 结合性:左结合和右结合
- 优先级表:完整的运算符优先级
- 括号使用:改变优先级和提高可读性
掌握运算符优先级是编写正确代码的基础!
最后更新:2026-03-27