swift while和repeat while循环语句 – Swift最新教程

上一章Swift教程请查看:swift for-in循环语句
在本文中,你将学习在swift编程中创建while和repeat while循环。
在前一篇文章中,我们了解了forin循环,即在一定的时间内运行一组任务。在本文中,你将学习如何使用while和repeat..while,当迭代次数未知时作为for-in循环的一种替代方法。
while循环执行一组语句,直到条件变为false,当在第一次迭代开始之前迭代的次数未知时,最好使用这些类型的循环,Swift提供了两种while循环:
swift while循环此循环在每次遍历循环的开始处计算其条件。
while循环的语法为:

while (TestExpression) { // statements }

while循环如何工作?TestExpression是一个布尔表达式。
如果TestExpression被赋值为true,
  • 执行while循环中的语句。
  • 然后再次计算testexpression。
这个过程会一直进行下去,直到TestExpression被赋值为false为止。如果TestExpression计算结果为false,则while循环终止。
while循环流程图
swift while和repeat while循环语句 – Swift最新教程

文章图片
例1:While循环
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel < = finalLevel) { //play game if gameCompleted { print("You have passed level \(currentLevel)") currentLevel += 1 } } print("while循环的外部")

在上面的程序中,变量currentLevel和finalLevel初始化为0,常量gameCompleted初始化为true。
在while循环的每个迭代中,它检查条件currentLevel < = finalLevel。如果条件返回true, while循环中的语句将被执行,否则循环将终止。
执行步骤
迭代 条件(currentLevel < = finalLevel) 输出
1 0 < = 5 (true) You have passed level 0
2 1 < = 5 (true) You have passed level 1
3 2 < = 5 (true) You have passed level 2
4 3 < = 5 (true) You have passed level 3
5 4 < = 5 (true) You have passed level 4
6 5 < = 5 (true) You have passed level 5
7 6 < = 5 (false) while循环的外部
repeat while循环此循环在每次循环结束时计算其条件,repeat…while循环类似于while循环,只是有一个关键区别,repeat…while循环主体在检查测试表达式之前执行一次。
repeat..while循环的语法是:
repeat { // statements ... } while (testExpression)

repeat……while循环如何工作?repeat…while循环体执行一次(在检查测试表达式之前),只有这样,才会检查testExpression。
如果testExpression被赋值为true,则执行循环体中的语句,并且再次执行testExpression,这个过程会一直进行下去,直到testExpression被赋值为false。
当testExpression为false时,repeat..while循环终止。
流程图的repeat…while循环
swift while和repeat while循环语句 &#8211; Swift最新教程

文章图片
例2:repeat…while循环
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat { //play game if gameCompleted { print("You have passed level \(currentLevel)") currentLevel += 1 } } while (currentLevel < = finalLevel) print("在repeat while循环之外")

在上面的例子中,循环内的语句第一次执行,对于下一次迭代,它检查条件currentLevel < = finalLevel。
如果条件返回true, while循环中的语句将被执行,否则循环将终止。
执行步骤
迭代 条件(currentLevel < = finalLevel) Output
1 0 < = 5 (true) You have passed level 0
2 1 < = 5 (true) You have passed level 1
3 2 < = 5 (true) You have passed level 2
4 3 < = 5 (true) You have passed level 3
5 4 < = 5 (true) You have passed level 4
6 5 < = 5 (true) You have passed level 5
7 6 < = 5 (false) 在repeat while循环之外
虽然while和repeat while循环具有相同的执行步骤,但条件currentLevel < = finalLevel on repeat while循环仅在执行其中的语句之后执行。
但是在while中,在执行语句之前,首先检查条件。
无限while循环如果测试表达式从不计算为false,则while和repeat..while循环执行无限次。
例3:无限while循环
while (true) { print("Hello, World!") } repeat { print("Hello, World!") } while (true)

【swift while和repeat while循环语句 – Swift最新教程】当你运行该程序时,两个循环将执行print(“Hello, World!”)语句无数次。所以,你可以看到连续输出Hello, World!在控制台。

    推荐阅读