您的位置:首页 > 移动开发 > Swift

Swift控制语句之switch-case

2015-10-21 11:27 519 查看
// 强大的switch,重要的是每个分支都不需要break来结束
        
        //1、 switch可以和具体的值或是区间进行匹配
        var age =
25
        switch age {
            case
0...11:
                println("正太")
            case
12...30:
                println("骚年")
            default:
                println("大叔")
        }
        //2、 switch还能进行多值匹配
        let name =
"路飞"
        switch name {
        case
"路飞","娜美","山治":
            println("\(name)是海贼王里面的角色。")
        case
"漩涡鸣人","佐助","小英":
            println("\(name)是火影忍者里面的角色。")
        default:
            println("未知漫画里面的角色。")
        }
        //3、 switch还能进行元组匹配
        // 判断坐标所在的象限
        // “_”表示所有可能的值
        let pos = (2,2)
        switch pos {
            case (0,0):
                println("坐标在原点。")
            case (_,0):
                println("坐标在x轴上。")
            case (0,_):
                println("坐标在y轴上。")
            case (-3...3,-3...3):
                println("坐标在长宽为6的正方形内。")
            default:
                println("坐标位置未知!")
        }
        //4、 switch还能进行值绑定,也即是将匹配的值在case程序快中进行引用
        // 将height的值绑定到了常量h中
        // 关键字“fallthrough”表示继续对下面的case分支进行匹配
        // 正常情况下每个分支只匹配一次,它的作用就是“向下穿透”
        var height =
1.73
        switch height {
        case
let h:
            println("身高:\(h)米。")
            fallthrough
        case
1.73:
            println("匹配到1.73的case分支了。")
        default:
            println("嗯嗯,那啥。")
        }
        //5、 switch还能使用where进行额外的判断条件
        // 两个case分支的匹配区间相同
        // case分支的判定条件取决于后面的where语句
        var height1 =
1.73
        switch height1 {
        case
1...3
where height1 == 1.73:
            println("case 1")
        case
1...3
where height1 == 2:
            println("case 2")
        default:
            println("default君,我们又见面了。")
        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift switch