Swift switch 语句
在本文中,您将学习使用 switch
语句来控制程序的执行流。
switch
语句让我们可以在许多备选方案中执行代码块。
Swift 中 switch
语句的语法为:
switch (expression) {
case value1:
// statements
case value2:
// statements
...
...
default:
// statements
}
switch
语句计算括号 ()
内的表达式。
- 如果表达式的结果等于
value1
,则执行case value1:
的语句。 - 如果表达式的结果等于
value2
,则执行case value2:
的语句。 - 如果没有匹配,则执行默认情况的语句。
if…else…if
梯形图执行相同的操作。然而,switch
语句的语法更清晰,更易于读写。Switch 语句流程图
实例 1
// program to find the day of the week
let dayOfWeek = 4
switch dayOfWeek {
case 1:
print("Sunday")
case 2:
print("Monday")
case 3:
print("Tuesday")
case 4:
print("Wednesday")
case 5:
print("Thursday")
case 6:
print("Friday")
case 7:
print("Saturday")
default:
print("Invalid day")
}
结果如下:
Wednesday
在上面的实例中,我们为 dayOfWeek
变量赋值了 4。现在,将变量与每个 case
语句的值进行比较。
由于该值与 case 4
匹配,因此执行 case 中的语句 print("Wednesday")
,并终止程序。
带回退的 Switch 语句
如果我们在 case
语句中使用 fallthrough
关键字,即使 case
值与 switch
表达式不匹配,控件也会继续下一个 case
。例如:
// program to find the day of the week
let dayOfWeek = 4
switch dayOfWeek {
case 1:
print("Sunday")
case 2:
print("Monday")
case 3:
print("Tuesday")
case 4:
print("Wednesday")
fallthrough
case 5:
print("Thursday")
case 6:
print("Friday")
case 7:
print("Saturday")
default:
print("Invalid day")
}
结果为:
Wednesday
Thursday
在上面的实例中,由于值与 case 4
匹配,因此执行 case 中的语句 print("Wednesday")
我们还使用了关键字 fallthrough
。因此,即使 case
与 case
语句不匹配,也会执行 case 5
中的语句 print("Thursday")
。
带范围的 Switch 语句
let ageGroup = 33
switch ageGroup {
case 0...16:
print("Child")
case 17...30:
print("Young Adults")
case 31...45:
print("Middle-aged Adults")
default:
print("Old-aged Adults")
}
结果为:
Middle-aged Adults
在上面的实例中,我们对每种情况使用了数值范围:case 0…16
、case 17…30
和 case 31…45
,而不是单个值。
此处,年龄组的值为 33,在 32…45 范围内。因此,执行语句 print("Middle-aged Adults")
。
Switch 语句中的元组
在 Swift 中,我们也可以在 switch
语句中使用元组。例如:
let info = ("Dwight", 38)
// match complete tuple values
switch info {
case ("Dwight", 38):
print("Dwight is 38 years old")
case ("Micheal", 46):
print("Micheal is 46 years old")
default:
print("Not known")
}
结果如下:
Dwight is 38 years old
在上面的实例中,我们创建了一个名为 info
的元组,其值为:"Dwight" 和 38。
这里,每个 case
语句也包括元组:case("Dwight",38)
和 case("Micheal",46)
,而不是单个值。
现在,将信息的值与每个 case
语句进行比较。由于该值与 case("Dwight",38)
匹配,因此执行语句 print("Dwight is 38 years old")
。
要了解有关元组的更多信息,请访问 Swift Tuple。