Object-C--->Swift之(四)强大的Switch

Swift依然继承了C和Object的Switch语句,但在原有的基础上进行了改变,使其变得更加强大

任性的case标签:

case标签可以紧跟多个值
  var score = "C"
    switch score
    {
    case "A","a":
    print("优秀")
        case "B","b":
        print("良好")
    case "C","c":
        print("及格")
    case "D","d":
        print("不及格")

    default:
        print("只能输入单个字符呀")
    }
case标签可以与范围运算符合作
 var score = 80
    switch score
    {
    case 90...100:
    print("优秀")
        case 80..<90:
        print("良好")
    case 60..<80:
        print("及格")
    case 0..<60:
        print("不及格")

    default:
        print("只能输入单个字符呀")
case里面与where语句结合
   case var(name,results) where name=="小明" && results == 100:
    print("小明取得了100分")
声明常量占位符:grade

使用grade可以获取score的值,当不能匹配上面case块时,就会执行最后一个case块,将score变量的值传给grade,这时候就不需要default语句啦。

       var score = 101
    switch score
    {
    case 90...100:
    print("优秀")
        case 80..<90:
        print("良好")
        fallthrough
    case 60..<80:
        print("及格")
    case 0..<60:
        print("不及格")

    case let grade:
        print("你输入的成绩是:\(grade),难道你们不是百分制吗?")
}

Switch不存在隐式贯穿和显式贯穿

解释一下什么意思:Swift语句不再像C和OC那样,不再要求每一个case语句后面显式的加一个break语句。使得Swift变得更加安全、好用。
但是如果我们想用C语言的贯穿风格,这里Swft提供了fallthrough语句,可以方便的回归到C和OC时代。

     var score = 80
    switch score
    {
    case 90...100:
    print("优秀")
        case 80..<90:
        print("良好")
        fallthrough
    case 60..<80:
        print("及格")
    case 0..<60:
        print("不及格")

    default:
        print("只能输入单个字符呀")    

我们在上面代码上加入fallthrough,这次输出的就变成了

                    良好
                    及格  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值