Swift流程控制

for-in 循环
  • 使用 for-in 循环来遍历序列,比如一个范围的数字,数组中的元素或者字符串中的字符。
  • 如果你不需要序列的每一个值,你可以使用下划线来取代遍历名以忽略值。
for i in 0...3 {
    print(i)
}

for c in "hello,world" {
    print(c)
}
for-in 遍历字典
  • 当字典遍历时,每一个元素都返回一个 (key, value) 元组,你可以在 for-in 循环体中使用显 式命名常量来分解 (key, value) 元组成员。
let numberLogs = ["qwrr":6, "asdf":3, "zxcvb":8]
for (name, number) in numberLogs {
    print("name == \(name), number == \(number)")
}
for-in 分段区间
  • 使用 stride(from:to:by:) 函数来跳过不想要的标记 (开区间)。
  • 闭区间也同样适用,使用 stride(from:through:by:) 即可。
//to 改成through  包含80
let  middleNumber = 5
for i in stride(from: 0, to: 80, by: middleNumber) {
    print(i) //0,5,10,15,20,25.....
}
while 循环

repeat-while 循环 (Objective-C do-while)

switch

  • switch 语句会将一个值与多个可能的模式匹配。然后基于第一个成功匹配的模式来执行合适的 代码块。
  • switch 语句一定得是全面的。就是说,给定类型里每一个值都得被考虑到并且匹配到一个 switch 的 case。如果无法提供一个 switch case 所有可能的值,你可以定义一个默认匹配所有 的 case 来匹配所有未明确出来的值。这个匹配所有的情况用关键字 default 标记,并且必须在 所有 case 的最后出现。
  • Objective-C switch 语句如果不全面,仍然可以运行。
  • 相比 C 和 Objective-C 里的 switch 语句来说,Swift 里的 switch 语句不会默认从匹配 case 的末尾贯穿到下一个 case 里。
  • 相反,整个 switch 语句会在匹配到第一个 switch 的 case 执行完毕之后退出,不再需要显式 的 break 语句。
  • 每一个 case 的函数体必须包含至少一个可执行的语句。
  • 在一个 switch 的 case 中匹配多个值可以用逗号分隔,并且可以写成多行

guard 和检查 API 可用性

  • guard 语句,类似于 if 语句,基于布尔值表达式来执行语句。使用 guard 语句来要求一个条 件必须是真才能执行 guard 之后的语句。与 if 语句不同,guard 语句总是有一个 else 分句 —— else 分句里的代码会在条件不为真的时候执行。
  • Swift 拥有内置的对 API 可用性的检查功能,它能够确保你不会悲剧地使用了对部属目标不可 用的 API。
  • 你可以在 if 或者 guard 语句中使用一个可用性条件来有条件地执行代码,基于在运行时你想 用的哪个 API 是可用的。

你可能感兴趣的:(Swift流程控制)