while 与 repeat-while 循环
学习基于条件的循环,以及如何使用 repeat-while 保证至少执行一次
while 与 repeat-while 循环 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
欢迎
当迭代次数无法预先确定时,`while` 和 `repeat-while` 循环是合适的选择。下面来了解各自的使用时机和方法。
while 循环
`while` 循环会在每次迭代前计算条件:
```swift
var count = 0
while count < 5 {
print(count)
count += 1
}
// prints 0, 1, 2, 3, 4
```
如果初始条件为 false,循环体一次也不会执行。
repeat-while 循环
`repeat-while` 循环会在每次迭代后计算条件,因此至少会执行一次:
```swift
var x = 10
repeat {
print(x)
x -= 3
} while x > 0
// prints 10, 7, 4, 1
```
while 与 repeat-while
可能一次都不需要执行时,请使用 `while`。
必须至少执行一次时,请使用 `repeat-while`:
```swift
// Reading input until valid — must try at least once:
repeat {
input = readLine() ?? ""
} while input.isEmpty
```
使用 while true 创建无限循环
`while true` 循环会一直运行,直到遇到 `break`——事件循环中经常采用这种方式:
```swift
while true {
let event = nextEvent()
if event == .quit { break }
handleEvent(event)
}
```
请始终确保存在一个可到达的退出条件。
倒计时示例
```swift
var countdown = 5
while countdown > 0 {
print("\(countdown)...")
countdown -= 1
}
print("Liftoff!")
```
这是经典的 while 循环模式——不断递减,直到条件不再成立。
避免无限循环
常见的无限循环错误:
```swift
var i = 0
while i < 5 {
print(i)
// forgot i += 1 ← infinite loop!
}
```
请始终确认循环变量会更新,并且条件最终会变为 false。
使用可选绑定的 while
将 `while` 与可选绑定结合起来,可以一直处理序列,直到遇到 nil:
```swift
var items: [Int] = [1, 2, 3]
while let value = items.first {
print(value)
items.removeFirst()
}
```
这种模式适合以破坏性方式逐个取出集合元素,简洁而清晰。
游戏循环示例
```swift
var lives = 3
var gameOver = false
while !gameOver {
let hit = Bool.random()
if hit { lives -= 1 }
if lives == 0 { gameOver = true }
}
print("Game Over")
```
真实的游戏循环会使用这种模式,持续运行直到满足终止条件。
嵌套的 while 循环
while 循环可以嵌套,在解析或矩阵算法中很常见:
```swift
var row = 0
while row < 3 {
var col = 0
while col < 3 {
print("(\(row),\(col))", terminator: " ")
col += 1
}
print(); row += 1
}
```
快速检查
哪个循环可以保证循环体**至少执行一次**?
回顾
要点总结:
• `while condition { }`——每次运行前检查,可能一次也不执行
• `repeat { } while condition`——运行后检查,至少执行一次
• `while true { ... break }`——事件循环模式
• 请始终确保循环变量朝着终止条件推进
• 将 `while` 与可选绑定结合,用简洁的方式消耗序列
接下来:使用 for-in 遍历集合。
常见问题解答
「while 与 repeat-while 循环」课时是免费的吗?
是的 — 「while 与 repeat-while 循环」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「while 与 repeat-while 循环」这节课中我会学到什么?
学习基于条件的循环,以及如何使用 repeat-while 保证至少执行一次 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「while 与 repeat-while 循环」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用范围进行 for-in 循环
- while 与 repeat-while 循环
- 使用 for-in 迭代集合
- break、continue 与带标签语句