有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
编程语言提供了更为复杂执行路径的多种控制结构。
循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图:

循环类型
Swift 语言提供了以下几种循环类型。点击链接查看每个类型的详细描述:
循环类型 | 描述 |
---|---|
遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符。 | |
该循环方式在 Swift 3 中已经弃用:( 用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。 |
|
运行一系列语句,如果条件为true,会重复运行,直到条件变为false。 | |
类似 while 语句区别在于判断循环条件之前,先执行一次循环的代码块。 |
循环控制语句
循环控制语句改变你代码的执行顺序,通过它你可以实现代码的跳转。Swift 以下几种循环控制语句:
控制语句 | 描述 |
---|---|
告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。 | |
中断当前循环。 | |
如果在一个case执行完后,继续执行下面的case,需要使用fallthrough(贯穿)关键字。 |
for-in 循环
Swift for-in 循环用于遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符。
语法
Swift for-in 循环的语法格式如下:
- for index in var {
- 循环体
- }
流程图:

实例 1
- import Cocoa
- for index in 1...5 {
- print("\(index) 乘于 5 为:\(index * 5)")
- }
例子中用来进行遍历的元素是使用闭区间操作符(...)表示的从1到5的数字区间。i
以上程序执行输出结果为:
- 1 乘于 5 为:5
- 2 乘于 5 为:10
- 3 乘于 5 为:15
- 4 乘于 5 为:20
- 5 乘于 5 为:25
实例 2
- import Cocoa
- var someInts:[Int] = [10, 20, 30]
- for index in someInts {
- print( "index 的值为 \(index)")
- }
以上程序执行输出结果为:
- index 的值为 10
- index 的值为 20
- index 的值为 30
for 循环
该循环方式在 Swift 3 中已经弃用:(
Swift for 循环用来重复执行一系列语句直到达成特定条件,一般通过在每次循环完成后增加计数器的值来实现。
语法
Swift for 循环的语法格式如下:
- for init; condition; increment{
- 循环体
- }
参数解析:
- init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
- 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。
- 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
- 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。
流程图:

实例
- import Cocoa
- var someInts:[Int] = [10, 20, 30]
- for var index = 0; index < 3; ++index {
- print( "索引 [\(index)] 对应的值为 \(someInts[index])")
- }
以上程序在swift3.0以下版本中,执行输出结果为:
- 索引 [0] 对应的值为 10
- 索引 [1] 对应的值为 20
- 索引 [2] 对应的值为 30
While 循环
Swift while循环从计算单一条件开始。如果条件为true,会重复运行一系列语句,直到条件变为false。
语法
Swift while 循环的语法格式如下:
- while condition
- {
- statement(s)
- }
语法中的 statement(s) 可以是一个语句或者一个语句块。 condition 可以是一个表达式。如果条件为true,会重复运行一系列语句,直到条件变为false。
数字 0, 字符串 '0' 和 "", 空的 list(), 及未定义的变量都为 false ,其他的则都为 true。true 取反使用 ! 号或 not,取反后返回 false。
流程图:

实例
- import Cocoa
- var index = 10
- while index < 20
- {
- print( "index 的值为 \(index)")
- index = index + 1
- }
以上程序执行输出结果为:
- index 的值为 10
- index 的值为 11
- index 的值为 12
- index 的值为 13
- index 的值为 14
- index 的值为 15
- index 的值为 16
- index 的值为 17
- index 的值为 18
- index 的值为 19
repeat...while 循环
Swift repeat...while 循环不像 for 和 while 循环在循环体开始执行前先判断条件语句,而是在循环执行结束时判断条件是否符合。
语法
Swift repeat...while 循环的语法格式如下:
- repeat
- {
- statement(s);
- }while( condition );
请注意,条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次。
如果条件为 true,控制流会跳转回上面的 repeat,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为 false 为止。
数字 0, 字符串 '0' 和 "", 空的 list(), 及未定义的变量都为 false ,其他的则都为 true。true 取反使用 ! 号或 not,取反后返回 false。
流程图:

实例
- import Cocoa
- var index = 15
- repeat{
- print( "index 的值为 \(index)")
- index = index + 1
- }while index < 20
以上程序执行输出结果为:
- index 的值为 15
- index 的值为 16
- index 的值为 17
- index 的值为 18
- index 的值为 19
Continue 语句
Swift continue语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do...while 循环,continue 语句重新执行条件判断语句。
语法
Swift continue语句的语法格式如下:
- continue
流程图:

实例
- import Cocoa
- var index = 10
- repeat{
- index = index + 1
- if( index == 15 ){ // index 等于 15 时跳过
- continue
- }
- print( "index 的值为 \(index)")
- }while index < 20
以上程序执行输出结果为:
- index 的值为 11
- index 的值为 12
- index 的值为 13
- index 的值为 14
- index 的值为 16
- index 的值为 17
- index 的值为 18
- index 的值为 19
- index 的值为 20
Break 语句
Swift break语句会立刻结束整个控制流的执行。
如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。
语法
Swift break语句的语法格式如下:
- break
流程图:

实例
- import Cocoa
- var index = 10
- repeat{
- index = index + 1
- if( index == 15 ){ // index 等于 15 时终止循环
- break
- }
- print( "index 的值为 \(index)")
- }while index < 20
以上程序执行输出结果为:
- index 的值为 11
- index 的值为 12
- index 的值为 13
- index 的值为 14
Fallthrough 语句
Swift fallthrough 语句让 case 之后的语句会按顺序继续运行,且不论条件是否满足都会执行。
Swift 中的 switch 不会从上一个 case 分支落入到下一个 case 分支中。只要第一个匹配到的 case 分支完成了它需要执行的语句,整个switch代码块完成了它的执行。
注意:在大多数语言中,switch 语句块中,case 要紧跟 break,否则 case 之后的语句会顺序运行,而在 Swift 语言中,默认是不会执行下去的,switch 也会终止。如果你想在 Swift 中让 case 之后的语句会按顺序继续运行,则需要使用 fallthrough 语句。
语法
Swift fallthrough 语句的语法格式如下:
- fallthrough
一般在 switch 语句中不使用 fallthrough 语句。
实例1
以下实例没有使用 fallthrough 语句:
- import Cocoa
- var index = 10
- switch index {
- case 100 :
- print( "index 的值为 100")
- case 10,15 :
- print( "index 的值为 10 或 15")
- case 5 :
- print( "index 的值为 5")
- default :
- print( "默认 case")
- }
当上面的代码被编译执行时,它会产生下列结果:
- index 的值为 10 或 15
实例2
以下实例使用 fallthrough 语句:
- import Cocoa
- var index = 10
- switch index {
- case 100 :
- print( "index 的值为 100")
- fallthrough
- case 10,15 :
- print( "index 的值为 10 或 15")
- fallthrough
- case 5 :
- print( "index 的值为 5")
- default :
- print( "默认 case")
- }
当上面的代码被编译执行时,它会产生下列结果:
- index 的值为 10 或 15
- index 的值为 5
转载本站内容时,请务必注明来自W3xue,违者必究。