swift 学习笔记(16)-switch 语句

前端之家收集整理的这篇文章主要介绍了swift 学习笔记(16)-switch 语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

swich 语句
选择情况比较多的时候,一个情况可以设定为一个 case

比如判断今天是星期几

var@H_404_7@ week = 6@H_404_7@
switch@H_404_7@ week  {
var@H_404_7@ week = 6@H_404_7@
switch@H_404_7@ week  {
case@H_404_7@ 1@H_404_7@:
    print@H_404_7@("星期一"@H_404_7@)
case@H_404_7@ 2@H_404_7@:
    print@H_404_7@("星期二"@H_404_7@)
case@H_404_7@ 3@H_404_7@:
    print@H_404_7@("星期三"@H_404_7@)
case@H_404_7@ 4@H_404_7@:
    print@H_404_7@("星期四"@H_404_7@)
case@H_404_7@ 5@H_404_7@:
    print@H_404_7@("星期五"@H_404_7@)
case@H_404_7@ 6@H_404_7@:
    print@H_404_7@("星期六"@H_404_7@)
case@H_404_7@ 7@H_404_7@:
    print@H_404_7@("星期日"@H_404_7@)
default@H_404_7@:
    print@H_404_7@("qingshuruzhengquede"@H_404_7@)
}

匹配条件,有多种方式的匹配

// 字符串的模式匹配@H_404_7@
// 满足哪个就执行哪个 case 中的语句,在 oc 中是不可以的@H_404_7@

var@H_404_7@ name = "ls"@H_404_7@
switch@H_404_7@ name {
case@H_404_7@ "zs"@H_404_7@:
    print@H_404_7@("zhangsan"@H_404_7@)
    //break 是隐形默认添加的,不用手动写@H_404_7@
// break@H_404_7@
case@H_404_7@ "ls"@H_404_7@:
    print@H_404_7@("lisi"@H_404_7@)
// break@H_404_7@

default@H_404_7@:
    print@H_404_7@("qita"@H_404_7@)
}
// 字符串的模式匹配@H_404_7@
// 满足哪个就执行哪个 case 中的语句,在 oc 中是不可以的@H_404_7@

var@H_404_7@ name = "ls"@H_404_7@
switch@H_404_7@ name {
case@H_404_7@ "zs"@H_404_7@:
    print@H_404_7@("zhangsan"@H_404_7@)
// break@H_404_7@
case@H_404_7@ "ls"@H_404_7@:
    print@H_404_7@("lisi"@H_404_7@)
// break@H_404_7@


default@H_404_7@:
    print@H_404_7@("qita"@H_404_7@)
}
//区间匹配@H_404_7@

var@H_404_7@ num = 80@H_404_7@
switch@H_404_7@ num {
case@H_404_7@ 0@H_404_7@:
    print@H_404_7@("缺考"@H_404_7@)
case@H_404_7@ 0@H_404_7@ ..< 60@H_404_7@:
    print@H_404_7@("及格"@H_404_7@)
case@H_404_7@ 60.@H_404_7@.<80@H_404_7@:
    print@H_404_7@("良好"@H_404_7@)
case@H_404_7@ 80.@H_404_7@.<100@H_404_7@:
    print@H_404_7@("优秀"@H_404_7@)
default@H_404_7@:
     print@H_404_7@("未知情况"@H_404_7@)
}

元组在switch 中的运用

let image@H_404_7@ = UIImageView(image@H_404_7@: UIImage(named: "zuobiaotu"@H_404_7@))
let pointA = (x:10@H_404_7@,y:-10@H_404_7@)
switch@H_404_7@ pointA {
case@H_404_7@ (0@H_404_7@,0@H_404_7@):
    print@H_404_7@("该点在原点"@H_404_7@)
case@H_404_7@ (0@H_404_7@,_):
    print@H_404_7@("该点在x轴"@H_404_7@)
case@H_404_7@ (_,0@H_404_7@):
    print@H_404_7@("该点在y轴"@H_404_7@)
case@H_404_7@ (0.@H_404_7@..Int.max@H_404_7@,0.@H_404_7@..Int.max@H_404_7@):
    print@H_404_7@("该点在第一象限"@H_404_7@)
case@H_404_7@ (-Int.max@H_404_7@...0@H_404_7@,0@H_404_7@):
    print@H_404_7@("该点在第二象限"@H_404_7@)
case@H_404_7@ (-Int.max@H_404_7@...0@H_404_7@,-Int.max@H_404_7@...0@H_404_7@):
    print@H_404_7@("该点在第三象限"@H_404_7@)
case@H_404_7@ (0.@H_404_7@..Int.max@H_404_7@,-Int.max@H_404_7@...0@H_404_7@):
    print@H_404_7@("该点在第四象限"@H_404_7@)

default@H_404_7@:
     print@H_404_7@("未知情况"@H_404_7@)
}
//swith 中使用值绑定 与 where 语句@H_404_7@
// 可以增加一个 where 的判断语句@H_404_7@

let@H_404_7@ point2 = (2@H_404_7@,2@H_404_7@)
switch@H_404_7@ point2 {
case@H_404_7@ (let@H_404_7@ x,let@H_404_7@ y) where@H_404_7@ (x == y ):
    print("point 在 x=y 的方程线上"@H_404_7@)
case@H_404_7@ (let@H_404_7@ x,let@H_404_7@ y) where@H_404_7@ (x == -y ):
    print("point 在 x=-y 的方程线上"@H_404_7@)

default@H_404_7@:
    print("其他情况"@H_404_7@)
}

猜你在找的Swift相关文章