第2部分 故事的进阶要素 - 编程语言Swift的进阶部分

2 Switch 控制流
2.1 概念通俗讲解
当if else if else if 这种表达式特别多时,我们可以用switch来替代,switch更简洁。所以本质上switch上和if控制流没什么区别,都是符合条件后执行相应的代码。
2.2 定义简洁介绍

switch 变量或常量{
case 值:
    运行代码
default:
    运行代码
}

举例

var age = 10
switch age{
case 10:
    print("年龄等于10岁")
default:
    print("以上的年龄条件都不符合")
}

这个例子age的值是10,所以运行case 10:里面的代码print(“年龄等于10岁”)
把上面的例子扩展的复杂一点

var height = "1米8"
switch height{
case "1米5":
    print("身高等于1米5")
case "1米6":
    print("身高等于1米6")
case "1米7", "1米8", "1米9":
    print("身高等于1米7 或 1米8 或 1米9")
default:
    print("以上的身高条件都不符合")
}

height的值是"1米8",所以会运行case “1米7”, “1米8”, “1米9”:里面的代码print(“身高等于1米7 或 1米8 或 1米9”)
2.3 我的经验总结
1). Swift语言的判断条件可以是Int,String等多种数据类型。
2). Swift语言每个case默认是带break的,所以不用加break。例如

switch age{
case 10:
    print("年龄等于10岁")
default:
    print("以上的年龄条件都不符合")
}

switch age{
case 10:
    print("年龄等于10岁")
    break
default:
    print("以上的年龄条件都不符合")
    break
}

是一样的。
3). case每个条件的判断条件不要重复,如果重复虽然可以编译通过,但编译器会提示不建议这样。如下的代码并不推荐

switch age{
case 10:
    print("年龄等于10岁")
case 10:
    print("年龄等于10岁")
default:
    print("以上的年龄条件都不符合")
}

4). 如果找到符合条件后还让他继续下面的代码执行,可加fallthrough关键字,例如

var weight = 140
switch weight{
case 130:
    print("体重等于130斤")
    fallthrough
case 140:
    print("体重等于140斤")
    fallthrough
case 150, 160, 170:
    print("体重等于150斤 或 160斤 或 170斤")
    fallthrough
default:
    print("以上的体重条件都不符合")
}

wieght是140,case等于130进行第一次判断,不符合不进入
case等于140时,符合进入,print(“体重等于140斤”)
因为加了fallthrough,还会执行下面的case 150, 160, 170
因为加了fallthrough还会进入下面的default
所以最终执行了如下的代码

print("体重等于140斤")
print("体重等于150斤 或 160斤 或 170斤")
print("以上的体重条件都不符合")

注:本人水平和能力有限,如果哪些地方写错了,请大家给我反馈,我会及时修改。