switch语句提供多分支的程序结构。Swift中的switch语句可以使用整数、浮点数、字符、字符 串和元组等类型,而且它的数值可以是离散的也可以是连续的范围。
下面我们先介绍一下switch语句基本形式的语法结构,如下所示
switch 条件表达式{
case 值1:
语句块1
case 值2,值3:
语句块2
case块3:
语句块3
...case 判断值n:
语句块n
default:
语句块n+1
}
每个case后面可以跟一个或多个值,多个值之间用逗号分隔。每个switch必须有一个default语句,它放在所有分支后面。每个case中至少要有一条语句。
当程序执行到switch语句时,先计算条件表达式的值,假设值为A,然后拿A与第1个case语句中的值1进行匹配,如果匹配则执行语句组1,语句组执行完成跳出switch,不像C语言那样只有遇到break才跳出switch;如果A没有与第1个case语句匹配, 与第2个case语句进行配, 如果匹配则执行语句组2,以此类推,直到执行语句组n。如果所有的case语句都没有执行,就执行default的语句组n+1,这时才跳switch。
在Swift里,Switch能支持多种数据类型,包括浮点、布尔、字符串等:
switch语句支持整形数据的基本形式示例代码如下:
1 | var number = 90
2 | switch number / 10{
3 | case 9: print("优秀")
4 | case 8: print("良好")
5 | case 7,6: print("中等")
6 | default :
7 | print("差")
8 | }
上述代码将100分制转换为:“优秀”、“良好”、“中等”、“差”评分制。第2行计算表达式获得0~9分数值。第5行代码中的7,6是将两个值放在一个case。
switch语句支持浮点型数据的基本形式示例代码如下:
1 | let float = 1.5
2 | switch float {
3 | case 1.5:
4 | print("1.5")
5 | default:
6 | print( "default")
7 | }
switch语句支持布尔型数据的基本形式示例代码如下:
1 | let isSuccess = true
2 | switch isSuccess {
3 | case true:
4 | print("true") //被输出
5 | default:
6 | print("default")
7 | }
switch语句支持字符型数据的基本形式示例代码如下:
1 | let name = "Swift"
2 | switch name {
3 | case "Swift":
4 | print("Swift ") //被输出
5 | default:
6 | print( "default")
7 | }