Swift语言主要提供了for-in遍历、while与repeat-while条件循环3种循环结构。
在for-in循环结构中,如果in关键字后面是一个集合,则变量index会自动获取集合中的元素;如果in关键字后面是一个范围,则in-dex获取到的是从左向右依次遍历到的范围索引数。
OC中的for-in循环是无序的,Swift中移除了for()循环,同时也移除了自增自减++、--,通过for-in可以实现优雅的无序或有序循环
//遍历集合类型
var collection1:Array = [1,2,3,4]
var collection2:Dictionary = [1:1,2:2,3:4,4:4]
var collection3:Set = [1,2,3,4]
for obj in collection1 {
print(obj)
}
for index in 0..< collection1.count {
let value = collection1[index]
}
for (key , value) in collection2 {
print(key,value)
}
for obj in collection3 {
print(obj)
}
while与OC一样是入口循环,repeat-while与do-while一样是出口循环
if关键字后面跟的条件必须为严格意义上的逻辑值或者结果为逻辑值的表达式。这点Swift语言和C/Objective-C语言有一定差异。
不像C/Objective-C中的switch语句只能进行int类型值的匹配,Swift语言中的switch语句可以进行任意数据类型的匹配,也取消了穿透,只要一匹配成功直接跳出switch结构,Swift中可以在case中编写多个条件来实现switch穿透
// 元组与switch的多种实用方式
var tuple = (3,4)
switch tuple {
case (1,2):
print("完全匹配")
case (_,3):
print("匹配其中一个值")
case (let value,4):
print("匹配其中一个值,并获取另一位的值%@",value)
case (let value,5) where value < 5 :
print("完全匹配,并获取另一位的值%@",value)
case (let a,let b) where a < 5: // 不能同时添加多个where
print("取两个值,判断范围 %d-%d",a,b)
default:
print("不匹配")
}
网友评论