跳到主要内容

Swift switch 语句

提示
  1. switch语句的基本用法:Swift中的switch语句根据条件执行不同的代码块,每个case代表一个选择,default用于处理未匹配的情况。
  2. 带有范围和元组的switch语句switch语句支持使用数字范围和元组进行匹配,使得条件更加灵活和多样。
  3. fallthrough关键字的使用:使用fallthrough关键字可以使得控制流继续执行下一个case,即使当前case已匹配。

switch 语句允许我们在多个选择中执行一个代码块。

Swift 中 switch 语句的语法是:

switch (表达式)  {
case1:
// 语句

case2:
// 语句

...
...

default:
// 语句
}

switch 语句评估括号 () 中的表达式。

  1. 如果表达式的结果等于 值1,则执行 case 值1: 的语句。
  2. 如果表达式的结果等于 值2,则执行 case 值2: 的语句。
  3. 如果没有匹配项,执行 默认情况 的语句。

注意: 我们可以使用 if...else...if 阶梯做同样的事情。然而,switch 语句的语法更清晰、更易于阅读和编写。

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 关键字。因此,即使 casecase 语句不匹配,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...16case 17...30case 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 元组