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 | } |