Article / 2026/05/29
swift 操作符
本文档整理了 Swift 中的比较运算符、它们在 for 和 while 循环中的使用方法,以及相关的逻辑和模式匹配运算符,帮助开发者理解和应用这些运算符控制程序流程。
🚀 Swift 比较运算符与循环
本文档整理了 Swift 中的比较运算符、它们在 for 和 while 循环中的使用方法,以及相关的逻辑和模式匹配运算符,帮助开发者理解和应用这些运算符控制程序流程。
1. 比较运算符
比较运算符用于比较两个值,返回布尔值(true 或 false)。
| 运算符 | 名称 | 功能 | 示例 |
|---|---|---|---|
== | 等于 | 检查两个值是否相等 | a == b // a = b 时为 true |
!= | 不等于 | 检查两个值是否不相等 | a != b // a ≠ b 时为 true |
> | 大于 | 检查左侧值是否大于右侧值 | a > b // a > b 时为 true |
< | 小于 | 检查左侧值是否小于右侧值 | a < b // a < b 时为 true |
>= | 大于或等于 | 检查左侧值是否大于或等于右侧值 | a >= b // a ≥ b 时为 true |
<= | 小于或等于 | 检查左侧值是否小于或等于右侧值 | a <= b // a ≤ b 时为 true |
示例:
let a = 5, b = 3
print(a >= b) // 输出:true
print(a <= b) // 输出:false
2. 在 for 循环中的使用
在 Swift 的 for 循环中,比较运算符通常通过范围运算符(... 和 ..<)或条件语句间接使用。
(1) 范围运算符与比较运算符
Swift 提供两种范围运算符,隐含了比较运算符的逻辑:
-
闭区间运算符 (
...):包含起点和终点,等价于start >= value && value <= end。for i in 1...5 { print(i) // 输出:1, 2, 3, 4, 5 }等价于:
i >= 1 && i <= 5。 -
半开区间运算符 (
..<):包含起点但不包含终点,等价于start >= value && value < end。for i in 1..<5 { print(i) // 输出:1, 2, 3, 4 }等价于:
i >= 1 && i < 5。
(2) 使用 stride 自定义步长
当需要非默认步长或倒序循环时,可使用 stride(from:to:by:) 或 stride(from:through:by:):
-
stride(from:through:by:):包含终点,等价于value >= end(倒序时)。for i in stride(from: 5, through: 1, by: -1) { print(i) // 输出:5, 4, 3, 2, 1 }等价于:
i >= 1。 -
stride(from:to:by:):不包含终点,等价于value > end(倒序时)。for i in stride(from: 5, to: 1, by: -1) { print(i) // 输出:5, 4, 3, 2 }等价于:
i > 1。
(3) 结合条件语句
在 for-in 循环中,可使用 if 语句和比较运算符过滤值:
for i in 1...10 {
if i >= 5 && i <= 8 {
print(i) // 输出:5, 6, 7, 8
}
}
3. 在 while 循环中的使用
while 和 repeat-while 循环常直接使用比较运算符控制循环条件。
正序循环:
var i = 1
while i <= 5 {
print(i) // 输出:1, 2, 3, 4, 5
i += 1
}
倒序循环:
var j = 5
while j >= 1 {
print(j) // 输出:5, 4, 3, 2, 1
j -= 1
}
4. 相关运算符
以下是与比较运算符在逻辑上或功能上相关的运算符,常用于循环或条件控制:
| 运算符 | 名称 | 功能 | 示例 |
|---|---|---|---|
&& | 逻辑与 | 两个条件都为真时返回 true | a >= 1 && a <= 5 |
| | | 逻辑或 | 任一条件为真时返回 true | a < 1 |a > 5 |
! | 逻辑非 | 反转布尔值 | !(a == b) |
~= | 模式匹配 | 检查值是否匹配某个模式 | case 1...5 ~= a |
模式匹配示例:
for i in 1...5 where i ~= 3...5 {
print(i) // 输出:3, 4, 5
}
5. 注意事项
- 类型安全:比较运算符要求操作数类型一致或可比较(例如,
Int和Double可比较,自定义类型需实现Comparable协议)。 - 性能:使用
for-in循环和范围运算符(...或..<)通常比手动while循环更简洁且优化更好。 - 可读性:优先使用
for-in和范围运算符,除非需要复杂条件逻辑,才使用while或显式比较运算符。
6. 总结
- 比较运算符(
==,!=,>,<,>=,<=)在for循环中多通过范围运算符(...,..<)或stride间接使用。 - 在
while循环中,>=和<=常用于显式条件控制。 - 逻辑运算符(
&&,||,!)和模式匹配(~=)增强循环灵活性。 - 推荐使用 Swift 的高层次结构(如
for-in和范围运算符)以提高代码可读性和性能。
Giscus 未启用:请在
src/site.config.ts中配置 repoId 与 categoryId。