第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("以上的体重条件都不符合")
注:本人水平和能力有限,如果哪些地方写错了,请大家给我反馈,我会及时修改。