前端之家收集整理的这篇文章主要介绍了
swift 中switch 的新用法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- let grage = "B"
- switch grade {
-
- case "A":
- println("优秀等级")
- case "B":
- println("良好等级")
- case "C"
- printf("中等的等级")
- default:
- printf("未知等级")
- }
-
-
- switch 语句在Switch中
- 在C 语言中
- 如果case的结尾中没有break 就会执行下一个case
-
- 在Swift中
-
- 不需要在每一个case后面增加break
- 执行完case对应的代码后默认会自动退出switch 语句
-
- 每一个case后面必须有可执行的语句
- 1个case后面可以填写多个匹配条件 条件之间用逗号隔开
- let score = 95
- switch score/10{
- case 10,9:
- case 8,7,6:
- default:
- }
-
-
- case 后面可以填写一个范围匹配
- let score = 95
- switch socre{
- case 90...100:
- println("A")
- case 60...89:
- println("B")
- default:
- println(C)
-
- }
- //注意
- switch 要保证处理所有可能的情况 不然编译器会报错
- 因此 这里的default一定要加 不然会出现一些处理不到的情况
-
-
- case 还可以匹配元组
- 这是与OC 一个不一样的地方 方便使用
- //例如 判断一个点在蓝色句型 框内
- let point = (1,1)
- switch point{
- case (0,0):
- println("这个点在原点上")
- case (_,0):
- println("这个点在x轴上")
- case (0,_):
- println("这个点在y轴上")
- case (-2...2,-2...2)
- println("这个点在矩形框内")
-
- }
-
- case 的数值绑定
- 在case匹配的同时 可以讲switch中的值绑定给一个特定的变量或者常量
- 以便在case后面的语句中使用
- let point = (10,0)
- switch point{
-
- case (let x,0):
- println("这个点在x轴上,x值是\(x)")'
- case (0,let y):
- println("这个点在y轴上,y的值是\(y)")
- case let (x,y):
- printf("这个点的x值是\(x),y值是\(y)")
- }
- //打印:这个点在x 轴上 x 值是\(y)
- 注意观察 这里是没有default 的 所有default不是必须的
- 但是case 必须处理所有的情况
-
-
- where 这个语法是特别好用的 比以前的判断简单多了
- switch 语句可以使用where 来增加判断条件
- //比如判断一个点是否在一条线上
-
- var point = (10,-10)
- switch point{
- case let (x,y) where x == y:
- println("这个点在绿色的线上")
- case let (x,y) where x == -y:
- println("这个点在紫线上")
- default :
- printf("这个点不在这两条线上")
-
- }
- //打印:这个点在紫线上
-
-
- fallthrough 的用法
- 执行完当前的case后 会执行fallthrogh 后面的的case
- 或者default
- let num = 20
- var str = "\(num)是个"
- switch num{
- case 0...50:
- str += "0~50之间的"
- fallthrough
- default:
- str += "整数"
- }
- println(str)
- //打印 : 20 是个0~50之间的整数
- 注意:fallthrough后面的case条件不能定义变量和常量
-
-
-
-
-