在编程中,循环用于重复执行一段代码。例如,如果你想显示一条消息 100 次,那么你就可以使用循环。这只是一个简单的例子,你可以用循环实现更多功能。
在上一个教程中,你学习了 Swift for-in 循环。在这里,你将学习 while 和 repeat...while 循环。
Swift while 循环
Swift while 循环用于在满足特定条件时运行一段特定的代码。
while 循环的语法是
while (condition){
// body of loop
}
这里,
while循环在括号()内评估condition(条件)。- 如果
condition的评估结果为true(真),则执行while循环内的代码。 condition再次被评估。- 这个过程会一直持续到
condition的评估结果为false(假)为止。 - 当
condition的评估结果为false时,循环停止。
while 循环流程图
示例 1:Swift while 循环
// program to display numbers from 1 to 5
// initialize the variable
var i = 1, n = 5
// while loop from i = 1 to 5
while (i <= n) {
print(i)
i = i + 1
}
输出
1 2 3 4 5
程序的工作方式如下:
| 变量 | 条件:i <= n |
操作 |
|---|---|---|
i = 1n = 5 |
真 |
打印 1。i 增加到 2。 |
i = 2n = 5 |
真 |
打印 2。i 增加到 3。 |
i = 3n = 5 |
真 |
打印 3。i 增加到 4。 |
i = 4n = 5 |
真 |
打印 4。i 增加到 5。 |
i = 5n = 5 |
真 |
打印 5。i 增加到 6。 |
i = 6n = 5 |
假 |
循环终止。 |
示例 2:while 循环显示游戏关卡
var currentLevel:Int = 0, finalLevel:Int = 5
let gameCompleted = true
while (currentLevel <= finalLevel) {
if gameCompleted {
print("You have passed level \(currentLevel)")
currentLevel += 1
}
}
print("Level Ends")
输出
You have passed level 0 You have passed level 1 You have passed level 2 You have passed level 3 You have passed level 4 You have passed level 5 Level Ends
在上面的示例中,我们使用 while 循环来检查当前关卡并在控制台上显示它。
repeat...while 循环
repeat...while 循环与 while 循环类似,但有一个关键区别:repeat...while 循环的主体在检查测试表达式之前会执行一次。
repeat..while 循环的语法是
repeat {
// body of loop
} while (condition)
这里,
- 循环体首先被执行。然后评估
condition(条件)。 - 如果
condition的评估结果为true,则再次执行repeat语句内的循环体。 condition再次被评估。- 这个过程会一直持续到
condition的评估结果为false。然后循环停止。
repeat...while 循环流程图
示例 3:repeat...while 循环
// program to display numbers
var i = 1, n = 5
// repeat...while loop from 1 to 5
repeat {
print(i)
i = i + 1
} while (i <= n)
在上面的示例中,最初 i = 1,n = 5。第一次,循环内的语句在不检查条件的情况下执行。第一次迭代完成后会检查条件。
这个程序的工作方式如下:
| 变量 | 条件:i <= n |
操作 |
|---|---|---|
i = 1n = 5 |
未检查 | 打印 1。i 增加到 2。 |
i = 2n = 5 |
真 |
打印 2。i 增加到 3。 |
i = 3n = 5 |
真 |
打印 3。i 增加到 4。 |
i = 4n = 5 |
真 |
打印 4。i 增加到 5。 |
i = 5n = 5 |
真 |
打印 5。i 增加到 6。 |
i = 6n = 5 |
假 |
循环终止。 |
无限 while 循环
如果 while 循环的条件始终为 true,则循环将无限次运行(直到内存耗尽)。这被称为无限 while 循环。例如:
while (true) {
print("Endless Loop")
}
输出
Endless Loop Endless Loop . . .
这里,条件始终为 true。因此,while 循环将无限次运行。
for 与 while 循环
for-in 循环通常在已知迭代次数时使用。例如:
// this loop is iterated 5 times
for number in 1...5 {
// body of loop
}
然而,while 循环通常在迭代次数未知时使用。例如:
while (condition) {
// body of loop
}
注意:repeat...while 的工作原理与 while 相同。因此,当迭代次数未知时,也使用它。