Swift教程之控制流详解

2020-01-08 22:47:32王旭
易采站长站为您分析Swift教程之控制流详解,本文详细讲解了Swift中的for循环、for-in循环、For-Condition-Increment条件循环、while循环、Do-while循环、if条件语句等控制流语句,需要的朋友可以参考下  

Swift提供了所有C语言中相似的控制流结构。包括for和while循环;if和switch条件语句;break和continue跳转语句等。

Swift还加入了for-in循环语句,让编程人员可以在遍历数组,字典,范围,字符串或者其它序列时更加便捷。

相对于C语言,Swift中switch语句的case语句后,不会自动跳转到下一个语句,这样就避免了C语言中因为忘记break而造成的错误。另外case语句可以匹配多种类型,包括数据范围,元组,或者特定的类型等。switch语句中已匹配的数值也可以被用在后续的case语句体中,where关键词还能被加入任意的case语句中,来增加匹配的方式。

1、for循环

for循环可以根据设置,重复执行一个代码块多次。Swift中提供了两种for循环方式:
for-in循环,对于数据范围,序列,集合等中的每一个元素,都执行一次
for-condition-increment,一直执行,知道一个特定的条件满足,每一次循环执行,都会增加一次计数

for-in循环

下面的例子打印出了5的倍数序列的前5项

 

复制代码  
for index in 1...5 {
println("(index) times 5 is (index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25

 

迭代的项目是一个数字序列,从1到5的闭区间,通过使用(…)来表示序列。index被赋值为1,然后执行循环体中的代码。在这种情况下,循环只有一条语句,也就是打印5的index倍数。在这条语句执行完毕后,index的值被更新为序列中的下一个数值2,println函数再次被调用,一次循环直到这个序列的结尾。

在上面的例子中,index在每一次循环开始前都已经被赋值,因此不需要在每次使用前对它进行定义。每次它都隐式地被定义,就像是使用了let关键词一样。注意index是一个常量。

注意:index只在循环中存在,在循环完成之后如果需要继续使用,需要重新定义才可以。

如果你不需要序列中的每一个值,可以使用_来忽略它,仅仅只是使用循环体本身: