① 在C语言中
let grade = "B"
switch grade {
case "A":
print ("优秀")
case "B":
print ("优良")
case "C":
print("中等")
default:
print("未知");
}
程序的输出为 “优良"
②对条件匹配
switch (age) {
case 1:
case 2:
case 3:
printf("小孩");
break;
default:
break;
}
而在swift中则是这样的:
var age = 10
switch age {
case 1,2,3:
print("小孩");
default:
break
}
③ switch在swift中 case 范围的匹配,比如 你可以这样写
let score = 95
switch score {
case 90...100:
print("优秀")
case 60...89:
print("及格")
default:
print("不及格")
}
注意:switch要保证处理所有的可能情况,不然编译器会报错,因此,这里的default一定要加,不然就出现了一些处理不到的情况.
④case匹配元组,比如判断某一点是否在某个坐标范围内可以这样:
let point = (1,1)
switch point {
case (0,0):
print("在原点上")
case (_,0):
print("在x轴上")
case (0,_):
print("在y轴上")
case (-2...2,-2...2):
print("在方框内")
default:
break}
⑤ case 的数值绑定
在case匹配的同时,可以将switch 中的值绑定给特定的常量或者变量,以便在case后面的语句中使用,比如:
let point = (1,1)
switch point {
case (let x,0):
print("x值为\(x)”) //这里能够输出 x的值
case (0,let y):
print("x值为\(y)”) //这里能够输出 y的值
case let (x,y):
print("x值为\(x)")
}
⑥在swift中 switch语句可以使用where来增加判断的条件
let point = (1,1)
switch point {
case let (x,y) where x == y:
print("x值为\(x)")
case (0,let y):
print("x值为\(y)")
case let (x,y):
print("x值为\(x)")
}
⑦fallthrough的使用
let num = 20
var str = "\(num)是个"
switch num {
case 0...50:
str += "0~50之间的数"
fallthrough
default:
str += "整数"
}
print(str)