1.For-In循环
//集合循环
let names = ["a", "b", "c"]
for name in names {
print("Hello, \(name)!")
}
//次数循环
for index in 1...5{
print("Hello! + \(index)")
}
//不需要值时可以使用 _ 来忽略此值
for _ in 1...5{
print("Hello!")
}
2.while循环
while a < b{ //直到a < b成为false时停止循环
print(".")
}
3.Repeat-while循环
repeat {
print(".")
} while a < b //先执行一次,然后a < b变成false时停止
4.If
if a < b {
//语句1
} else if a = b {
//语句2
} else {
//语句3
}
5.Switch
Switch id {
case "a":
print("a") //不需要加break,不存在隐式贯穿
case "b":
print("b") //每种情况下必须包含语句,否则报错
default:
print("其他")
}
(1)复合匹配
switch id {
case "a", "b": //如果写不下了可分行书写
print("c")
default:
print("其他")
}
(2)区间匹配
switch id {
case 1..<5:
print("1~4")
case 5..12:
print("5~11")
default:
print("其他")
}
(3)元组匹配
switch somePoint {
case (0,0): //从上到下一一匹配,如果多个case都匹配的话只取最前面
print("0,0")
case (_,0):
print("几,0")
case (0,_):
print("0,几")
default:
print("其他")
}
(4)值绑定匹配
switch somePoint {
case (let x, 0):
print("\(x), 0")
case (0, let y):
print("0, \(y)")
case let(x, y):
print("\(x), \(y)")
}
(5)where
switch yetPoint {
case let (x, y) where x == y:
print("\(x) == \(y)")
case let (x, y) where x == -y:
print("\(x) == - \(y)")
}
6.控制转移语句
continue, break, fallthrough, return, throw
continue: 停止本次循环,开始下次循环
break: 立即结束整个控制流。可以使用break忽略switch的分支。
fallthrough贯穿: switch中的case加入贯穿,case会穿透到下一个case/ default。
7.带标签的语句
gameLoop: while a < b {
a++
switch a {
case 1:
continue gameLoop;
case 2;
break gameLoop;
default:
print("0")
}
}
8.提前退出(guard)
guard 语句 else {
//不满足条件语句的时候运行此处代码块
return/break/continue/throw/调用无返回方法或函数
}
//满足条件语句时运行此处代码块
9.检测API可用性
if #available (iOS 10, macOS 10.12, *) {
//iOS:平台名称。10:版本号。*:必须有,更高版本。
//使用10版本API
} else {
//使用之前版本的API
}