Swift while 和 repeat while 循环
提示
- while和repeat...while循环的基本概念:Swift中的
while
循环在条件为真时重复执行,而repeat...while
循环至少执行一次循环体后再检查条件。 - 循环使用场景:
while
和repeat...while
循环适用于迭代次数未知的情况,而for-in
循环适用于迭代次数已知。 - 无限循环的风险:如果
while
循环的条件永远为真,会导致无限循环,可能耗尽系统资源。
在编程中,循环用于重复执行一段代码。例如,如果你想显示一条消息100次,那么你可以使用循环。这只是一个简单的例子,你可以通过循环实现更多的功能。
在上一篇教程中,你学习了 Swift for-in 循环。在这里,你将学习 while
和 repeat...while
循环。
Swift while 循环
Swift while
循环用于在满足特定条件时运行特定代码。
while
循环的语法是:
while (condition){
// 循环体
}
这里,
while
循环评估圆括号()
中的condition
。- 如果
condition
评估为true
,则执行while
循环内的代码。 - 再次评估
condition
。 - 这个过程持续进行,直到
condition
为false
。 - 当
condition
评估为false
时,循环停止。
while 循环的流程图
示例 1:Swift while 循环
// 程序用于显示从 1 到 5 的数字
// 初始化变量
var i = 1, n = 5
// 从 i = 1 到 5 的 while 循环
while (i <= n) {
print(i)
i = i + 1
}
输出
1
2
3
4
5
以下是程序的工作原理。
变量 | 条件:i <= n | 操作 |
---|---|---|
i = 1 n = 5 | true | 打印 1 。i 增加到 2 。 |
i = 2 n = 5 | true | 打印 2 。i 增加到 3 。 |
i = 3 n = 5 | true | 打印 3 。i 增加到 4 。 |
i = 4 n = 5 | true | 打印 4 。i 增加到 5 。 |
i = 5 n = 5 | true | 打印 5 。i 增加到 6 。 |
i = 6 n = 5 | false | 循环终止。 |
示例 2:使用 while 循环显示游戏等级
var currentLevel:Int = 0, finalLevel:Int = 5
let gameCompleted = true
while (currentLevel <= finalLevel) {
if gameCompleted {
print("你已通过第 \(currentLevel) 关")
currentLevel += 1
}
}
print("关卡结束")
输出
你已通过第 0 关
你已通过第 1 关
你已通过第 2 关
你已通过第 3 关
你已通过第 4 关
你已通过第 5 关
关卡结束
在上述示例中,我们使用 while
循环来检查当前等级并在控制台上显示。
repeat...while 循环
repeat...while
循环与 while
循环相似,但有一个关键的区别。repeat...while
循环的主体在检查测试表达式之前执行一次。
repeat..while
循环的语法是:
repeat {
// 循环体
} while (条件)
这里,
- 循环体首先被执行。然后评估
条件
。 - 如果
条件
计算为true
,则repeat
语句内的循环体再次执行。 条件
再次进行评估。- 这个过程持续到
条件
计算为false
。然后循环停止。
repeat...while 循环的流程图
示例 3:repeat...while 循环
// 程序用于显示数字
var i = 1, n = 5
// repeat...while 循环从 1 到 5
repeat {
print(i)
i = i + 1
} while (i <= n)
在上述示例中,最初 i = 1
和 n = 5
。第一次循环执行时不检查条件。在第一次迭代完成后检查条件。
这个程序的工作过程如下,
变量 | 条件:i <= n | 行动 |
---|---|---|
i = 1``n = 5 | 未检查 | 打印 1 。i 增加到 2。 |
i = 2``n = 5 | true | 打印 2 。i 增加到 3。 |
i = 3``n = 5 | true | 打印 3 。i 增加到 4。 |
i = 4``n = 5 | true | 打印 4 。i 增加到 5。 |
i = 5``n = 5 | true | 打印 5 。i 增加到 6。 |
i = 6``n = 5 | false | 循环终止。 |
无限 while 循环
如果 while
循环的条件始终为 true
,循环将无限次运行(直到内存满)。这被称为无限 while
循环。例如,
while (true) {
print("无尽循环")
}
输出
无尽循环
无尽循环
.
.
.
这里,条件始终为 true
。因此,while
循环将无限次运行。
for 循环 vs while 循环
for-in
循环通常在迭代次数已知时使用。例如,
// 这个循环迭代 5 次
for number in 1...5 {
// 循环体
}
然而,while
循环通常在迭代次数未知时使用。例如,
while (条件) {
// 循环体
}
注意: repeat...while
的工作原理与 while
相同。因此,它也在迭代次数未知时使用。