Swift提供了多种流程控制结构,包括可以多次执行任务的while
循环,基于特定条件选择执行不同代码分支的if、guard
和switch
语句,还有控制流程跳转到其他代码的break
和continue
语句。
Swift 还增加了for-in
循环,用来更简单地遍历数组(array
),字典(dictionary
),区间(range
),字符串(string
)和其他序列类型。
For-In 循环
与OC的相比功能更加泡儿否(powerful)-。-!!能够遍历区间、数组、字符串、字典。
While循环
- while循环,每次在循环开始时计算条件是否符合;
- repeat-while循环,每次在循环结束时计算条件是否符合。
注意: Swift语言的repeat-while循环合其他语言中的do-while循环是类似的。
If
这个语句已经如此简洁明了而众所周知,不太好发挥,所以苹果没好意思该名-。-!!。
Switch
还是那句话,更加炮儿否,然而,副作用未知……
- 每个case可以包含多个模式,用逗号隔开,例如这样:
let someCharacter: Character = "e"
switch someCharacter {
case "a", "e", "i", "o", "u":
print("\(someCharacter) is a vowel")
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
"n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
print("\(someCharacter) is a consonant")
default:
print("\(someCharacter) is not a vowel or a consonant")
}
// 输出 "e is a vowel"
- 不存在隐式的贯穿(No Implicit Fallthrough)
这真是极好的……跟break说NO!,case执行完就终止switch语句,再也不用担心霸(dai)气(ma)一不小心侧漏了
注意: 虽然在Swift中break不是必须的,但你依然可以在 case 分支中的代码执行完毕前使用break跳出,详情请参见Switch 语句中的 break。
注意: 如果想要贯穿至特定的 case 分支中,请使用fallthrough语句,详情请参考贯穿(Fallthrough)
每一个 case 分支都必须包含至少一条语句
case 分支的模式也可以是一个值的区间。
未完待续……