跳到主要内容

Swift while 和 repeat while 循环

提示
  1. while和repeat...while循环的基本概念:Swift中的while循环在条件为真时重复执行,而repeat...while循环至少执行一次循环体后再检查条件。
  2. 循环使用场景whilerepeat...while循环适用于迭代次数未知的情况,而for-in循环适用于迭代次数已知。
  3. 无限循环的风险:如果while循环的条件永远为真,会导致无限循环,可能耗尽系统资源。

在编程中,循环用于重复执行一段代码。例如,如果你想显示一条消息100次,那么你可以使用循环。这只是一个简单的例子,你可以通过循环实现更多的功能。

在上一篇教程中,你学习了 Swift for-in 循环。在这里,你将学习 whilerepeat...while 循环。

Swift while 循环

Swift while 循环用于在满足特定条件时运行特定代码。

while 循环的语法是:

while (condition){
// 循环体
}

这里,

  • while 循环评估圆括号 () 中的 condition
  • 如果 condition 评估为 true,则执行 while 循环内的代码。
  • 再次评估 condition
  • 这个过程持续进行,直到 conditionfalse
  • condition 评估为 false 时,循环停止。

while 循环的流程图

Swift 中 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 = 5true打印 1i 增加到 2
i = 2 n = 5true打印 2i 增加到 3
i = 3 n = 5true打印 3i 增加到 4
i = 4 n = 5true打印 4i 增加到 5
i = 5 n = 5true打印 5i 增加到 6
i = 6 n = 5false循环终止。

示例 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 循环的流程图

repeat...while 循环如何工作

示例 3:repeat...while 循环

// 程序用于显示数字

var i = 1, n = 5

// repeat...while 循环从 1 到 5
repeat {

print(i)

i = i + 1

} while (i <= n)

在上述示例中,最初 i = 1n = 5。第一次循环执行时不检查条件。在第一次迭代完成后检查条件。

这个程序的工作过程如下,

变量条件:i <= n行动
i = 1``n = 5未检查打印 1i 增加到 2
i = 2``n = 5true打印 2i 增加到 3
i = 3``n = 5true打印 3i 增加到 4
i = 4``n = 5true打印 4i 增加到 5
i = 5``n = 5true打印 5i 增加到 6
i = 6``n = 5false循环终止。

无限 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 相同。因此,它也在迭代次数未知时使用。