美文网首页
Swift - switch语句

Swift - switch语句

作者: 千山小畻 | 来源:发表于2016-06-17 21:32 被阅读404次
一、switch语句在Swift和C中的区别
  • 在C语言中,如果case的结尾没有break,就会接着执行下一个case
  • 在Swift中,不需要在每一个case后面增加break,执行完case对应的代码后默认会自动退出switch语句
  • 在Swift中,case后面必有可执行的代码
    let grade = "B"
    switch grade {
    case "A":
    print("优秀等级")
    case "B":
    print("良好等级")
    case "C":
    print("中等等级")
    default:
    print("未知等级")
    }
  • 1个case后面可以填写多个匹配条件,条件之间用逗号,隔开
    let score = 95
    switch score/10 {
    case 10, 9:
    print("优秀")
    case 8, 7, 6:
    print("及格")
    default:
    print("不及格")
    }
    //打印结果是:优秀
  • 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:
    print("这个点在其他位置")
  • 在case匹配的同时,可以将switch中的值绑定给一个特定的常量或变量,以便在case后面的语句中保用
    let point = (10, 0)
    switch point {
    case (let x, 0) :
    print("这个点在x轴上,x值是(x)")
    case (0, let y) :
    print("这个点在y轴上,y值是(y)")
    case let (x, y) :
    print("这个点的x值是:(x), y值是(y)")
    }
  • switch语句可以使用where来增加判断的条件
    let point = (10, 0)
    switch point {
    case let (x, y) where x == y :
    print("这个点在y = x直线上")
    case let (x, y) where x == -y :
    print("这个点在y = -x直线上")
    default:
    print("这个点不在这2条线上")
    }
  • fallthrough - 执行完当前case之后,会接着执行fallthrough后面的case或者default语句
    let num = 20
    var str = "(num)是个"
    switch num{
    case 0...50 :
    str += "0 ~ 50之间的"
    fallthrough
    default:
    str += "整数"
    }
  • fallthrough后面的case条件不能定义变量和常量
    

相关文章

网友评论

      本文标题:Swift - switch语句

      本文链接:https://www.haomeiwen.com/subject/nimvdttx.html