Swift switch 语句
- switch语句的基本用法:Swift中的
switch
语句根据条件执行不同的代码块,每个case
代表一个选择,default
用于处理未匹配的情况。 - 带有范围和元组的switch语句:
switch
语句支持使用数字范围和元组进行匹配,使得条件更加灵活和多样。 - fallthrough关键字的使用:使用
fallthrough
关键字可以使得控制流继续执行下一个case
,即使当前case
已匹配。
switch
语句允许我们在多个选择中执行一个代码块。
Swift 中 switch
语句的语法是:
switch (表达式) {
case 值1:
// 语句
case 值2:
// 语句
...
...
default:
// 语句
}
switch
语句评估括号 ()
中的表达式。
- 如果表达式的结果等于
值1
,则执行case 值1:
的语句。 - 如果表达式的结果等于
值2
,则执行case 值2:
的语句。 - 如果没有匹配项,执行 默认情况 的语句。
注意: 我们可以使用 if...else...if 阶梯做同样的事情。然而,switch
语句的语法更清晰、更易于阅读和编写。
Switch 语句的流程图
示例 1:使用 Switch 语句的简单程序
// 程序用于查找一周的某一天
let dayOfWeek = 4
switch dayOfWeek {
case 1:
print("星期日")
case 2:
print("星期一")
case 3:
print("星期二")
case 4:
print("星期三")
case 5:
print("星期四")
case 6:
print("星期五")
case 7:
print("星期六")
default:
print("无效的日期")
}
输出
星期三
在上述示例中,我们将 4
赋值给了 dayOfWeek
变量。现在,该变量与每个 case 语句的值进行比较。
由于值与 case 4
匹配,因此执行 case 内的语句 print("星期三")
,并终止程序。
带有 fallthrough 的 Switch 语句
如果我们在 case 语句内使用 fallthrough
关键字,即使 case 值与 switch 表达式不匹配,控制也会进入下一个 case。例如,
// 程序用于查找一周的某一天
let dayOfWeek = 4
switch dayOfWeek {
case 1:
print("星期日")
case 2:
print("星期一")
case 3:
print("星期二")
case 4:
print("星期三")
fallthrough
case 5:
print("星期四")
case 6:
print("星期五")
case 7:
print("星期六")
default:
print("无效的日期")
}
输出
星期三
星期四
在上述示例中,由于值与 case 4
匹配,所以 case
内的语句 print("星期三")
被执行。
我们还使用了 fallthrough
关键字。因此,即使 case
与 case
语句不匹配,case 5
内的语句 print("星期四")
也会被执行。
示例 2:带范围的 Switch 语句
let ageGroup = 33
switch ageGroup {
case 0...16:
print("儿童")
case 17...30:
print("青年")
case 31...45:
print("中年")
default:
print("老年")
}
输出
中年
在上述示例中,我们没有使用单个值,而是为每个 case
使用了数字范围:case 0...16
、case 17...30
和 case 31...45
。
这里,ageGroup
的值是 33
,落在 32...45
的范围内。因此,语句 print("中年")
被执行。
在 Switch 语句中使用元组
在 Swift 中,我们也可以在 switch 语句中使用元组。例如,
let info = ("Dwight", 38)
// 匹配完整的元组值
switch info {
case ("Dwight", 38):
print("Dwight 38岁")
case ("Micheal", 46):
print("Micheal 46岁")
default:
print("未知")
}
输出
Dwight 38岁
在上述示例中,我们创建了一个名为 info
的元组,其值为 "Dwight"
和 38
。
这里,每个 case
语句不是单个值,而是包括元组:case ("Dwight", 38)
和 case ("Micheal", 46)
。
现在,info
的值与每个 case
语句进行比较。由于值与 case ("Dwight", 38)
匹配,因此语句 print("Dwight 38岁")
被执行。
要了解更多关于元组的信息,请访问 Swift 元组。