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

例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 repeat. .while循环流程图

例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)

当你运行该程序时,两个循环将执行print(“Hello, World!”)语句无数次。所以,你可以看到连续输出Hello,
World!在控制台。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?