免费开源的iOS开发学习平台

Swift: 6.1 语句和流程控制--循环语句

跟C语言和Objective-C语言类似,Swift也提供了循环、条件判断流程控制结构和break、continue、fallthrough等语句。Swift使用for-in循环结构来遍历数组(array)、字典(dictionary)、区间(range)、字符串(string)和其他序列类型。Swift中的switch语句比Objective-C中的更加强大。在Objective-C语言中,如果某个 case 不小心漏写了break,这个case 就会贯穿(fallthrough)至下一个case,而在Swift中无需写break,所以不会发生这种贯穿(fallthrough)的情况。case 还可以匹配更多的类型模式,包括区间匹配(range matching)、元组(tuple)、特定类型的描述和进行值绑定。switch的case语句中匹配的值可以是由case体内部临时的常量或者变量决定,也可以由where分句描述更复杂的匹配条件。

for循环语句

  • Swift 3.0 中移除了C语言风格的循环语句,下面代码在Swift 3.0中会报错的。
var j=0
for j=0;j<5;j+=1 {
    print("j=\(j)")
}
  • Swift提供了for-in语句来循环遍历区间、数组、字符串、字典以及集合等序列值类型。如果循环过程中用不到序列中的值,可以使用下划线"_"来作为变量名忽略该值。
let base = 2
let power = 10
var result = 1
for _ in 1...power{
    result *= base
}
print("\(base) 的 \(power) 次方等于 \(result)")
//打印结果:2 的 10 次方等于 1024

while循环语句

  • Swift中的while循环语句跟Objective-C中的用法是一致的。不过,Swift使用repeat-while语句来对应替换Objective-C中的do-while语句。
let two = 2
let one = 1
repeat {
    print("无论如何都会执行一次")
} while two < one
//执行结果:无论如何都会执行一次

示例代码

//遍历区间
for i in 0..<10{
    print(i, terminator: ",");
}
print("")
//遍历数组
let arr = Array.init(repeating: 1.0, count: 5)
for val in arr{
    print(val,terminator:",")
}
print("")
//遍历字典
let dic = ["name":"张三","age":"15","birthday":"1990-06-11"]
for (key,val) in dic
{
    print("\(key):\(val)")
}
//遍历集合
let set:Set = ["小明","小红","小梅"]
for val in set{
    print(val,terminator:",")
}
print("")
//while循环
var index = 0
while index<10 {
    print(index,terminator:",")
    index += 1
}
print("")
//repeat-while循环
var index1 = 0
repeat {
    print(index1,terminator:",")
    index1 += 1
}while index1 < 10

代码执行结果如下图。

示例代码

https://github.com/99ios/23.6.1