上一章Swift教程请查看:swift条件语句
当你需要多次执行一个代码块时,可能会出现这种情况,通常,语句是按顺序执行的:先执行函数中的第一个语句,然后执行第二个语句,依此类推。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式:
Swift编程语言提供了以下类型的循环来处理循环需求。
编号 | 循环类型和描述 |
1 |
for-in 此循环为范围、序列、集合或级数中的每个项执行一组语句。 |
2 |
While循环 当给定条件为真时,重复一个或一组语句。它在执行循环体之前测试条件。 |
3 |
repeat…while循环 类似于while语句,只是它在循环体的末尾测试条件。 |
for-in循环语句
for-in循环遍历项的集合,如数字范围、数组中的项或字符串中的字符。
语法
在Swift编程语言中,for-in循环的语法是-
for index in var {
statement(s)
}
var someInts:[Int] = [10, 20, 30]
for index in someInts {
print( "index: \(index)")
}
While循环语句
只要给定条件为真,Swift编程语言中的while循环语句就会重复执行目标语句。
语法
在Swift编程语言中,while循环的语法为−
while condition {
statement(s)
}
这里的语句可以是单个语句,也可以是一个语句块。条件可以是任何表达式,当条件为真时,循环迭代。当条件变为false时,程序控制传递到紧接循环之后的行。
数字0、字符串“0”和“”、空列表()和undef在布尔上下文中都为false,其他所有值都为true。否定一个真的值!或not返回一个特殊的假值。
while循环的关键在于循环可能永远不会运行,当条件被测试并且结果为false时,循环体将被跳过,while循环之后的第一个语句将被执行。
例子
var index = 10
while index < 20 {
print( "index: \(index)")
index = index + 1
}
这里我们使用比较运算符<来比较变量索引相对于20的值。当index的值小于20时,While循环继续执行它旁边的代码块,当index的值变为20时,它就出来了。
Do…while循环
不像for和while循环在循环的顶部测试循环条件,repeat…while循环在循环的底部检查它的条件。
do……while循环类似于while循环,除了一个repeat…while循环保证至少执行一次。
语法
Swift中repeat…while语法如下:
repeat {
statement(s);
}
while( condition );
应该注意的是,条件表达式出现在循环的末尾,因此循环中的语句在测试条件之前执行一次。如果条件为真,则控制流跳回repeat,并再次执行循环中的语句,这个过程不断重复,直到给定的条件变为假。
数字0、字符串“0”和“”、空列表()和undef在布尔上下文中都为false,其他所有值都为true,否定一个真的值!或not返回一个特殊的假值。
例子
var index = 10
repeat {
print( "Value: \(index)")
index = index + 1
}
while index < 20
循环控制语句
循环控制语句改变了正常序列的执行,当执行离开范围时,在该范围中创建的所有自动对象都将被销毁。
Swift支持以下控制语句。
编号 | 控制语句及说明 |
1 |
Continue语句 该语句告诉循环停止正在执行的操作,并在循环的下一次迭代开始时重新开始。 |
2 |
Break语句 终止循环语句,并将执行转移到紧随循环之后的语句。 |
3 |
Fallthrough语句 fallthrough语句模拟了Swift切换到c风格切换的行为。 |
Swift continue语句
Swift中的continue语句告诉循环停止正在执行的操作,并在循环的下一次迭代开始时重新开始。
对于For循环,continue语句将导致条件测试并增加循环的执行部分。对于while循环,do……while循环时,continue语句使程序控件传递给条件测试。
例子
var index = 10
repeat {
index = index + 1
if( index == 15 ){
continue
}
print( "Index: \(index)")
} while index < 20
Swift break语句
C编程语言的break语句−以下两种用法
- break语句时遇到在一个循环,这个循环是立即终止和恢复程序控制下一条语句后循环。
- 它可以用于终止switch语句。
如果你正在使用嵌套循环(也就是一个循环内包含另一个循环),那么break语句将停止最内层循环的执行并开始执行下一行的代码块。
语法
在Swift中break语句的语法如下−
Break语句
例子
var index = 10
repeat {
index = index + 1
if( index == 15 ){
break
}
print( "Index: \(index)")
} while index < 20
Swift fallthrough语句
Swift中的switch语句在第一个匹配的case完成时就完成执行,而不是像在C和c++编程语言中那样在后续的case中失败。
switch语句在C和c++中的一般语法如下-
switch(expression){
case constant-expression :
statement(s);
break; /* 可选 */
case constant-expression :
statement(s);
break; /* 可选 */
/* 可以有任意数量的case语句 */
default : /* 可选 */
statement(s);
}
在这里,我们需要使用一个break语句从case语句中取出,否则执行控制将通过匹配的case语句下面可用的后续case语句。
语法
Swift中switch语句的一般语法如下
switch expression {
case expression1 :
statement(s)
fallthrough /* optional */
case expression2, expression3 :
statement(s)
fallthrough /* optional */
default : /* Optional */
statement(s);
}
如果我们不使用fallthrough语句,那么程序将在执行匹配的case语句之后从switch语句中出来。我们将通过以下两个示例来说明它的功能。
示例1
下面的例子演示了如何在Swift编程中使用switch语句,而不会出错
var index = 10
switch index {
case 100 :
print( "Index: 100")
case 10,15 :
print( "Index: either 10 or 15")
case 5 :
print( "Index: 5")
default :
print( "default case")
}