Switch分支语句
在swift中的Switch语句是没有穿透效果的,也就是说不用在每个case语句块末尾再加上break跳出。
传统的Switch在匹配完后,如果没有break,那么还会一一往下再与每个case比较。
switch还可以匹配多个值:
let index = "A"
switch index {
case "A","B","C":
print("通过,及格")
case "D","E":
print("不通过,不及格")
default:
print("无成绩,需参加补考")
}
switch还可以与区间运算符搭配:
let score = 59.9
switch score {
case 0.00..<59.99:
print("不通过,不及格")
case 60.00..<100.01:
print("通过,及格")
default:
print("无成绩,需参加补考")
}
switch还可以与元组和where搭配:
let score = (75,80,55)//定义一个元组
switch score {
case let(语文,数学,德育) where 德育>=60:
print("可参与评选")
case let(语文,数学,德育) where 德育<60:
print("不可参与评选")
default:
print("缺少成绩,需参加补考")
}
Switch分支语句下的fallthrough
fallthrough用于switch分支语句下的条件转移使用了fallthrough会强制执行下一条case语句。
let index = 202101
switch index {
case 202101:
print("xiaoMing")
fallthrough
case 202103:
print("xiaoDong")
case 202102:
print("xiaoHong")
case 202103:
print("xiaoDong")
default:
print("")
}
运行结果:
xiaoMing
xiaoDong