Swift 中 switch的使用

本文详细解释了Switch语句在编程中的使用,包括基本语法、配合区间和元组进行条件判断,以及示例说明其功能。

基本语法

switch someValue {
case value1:
    // 当 someValue 等于 value1 时执行此处代码
case value2:
    // 当 someValue 等于 value2 时执行此处代码
...
default:
    // 如果以上所有情况都不匹配,则执行此处代码
}

Switch 语句的关键字是 `switch`,后面跟着一个待匹配的值 `someValue`。然后是一系列的 `case` 分支,每个分支后面跟着一个可能的值,如果 `someValue` 等于某个 `case` 后面的值,对应的代码块将会被执行。最后是可选的 `default` 分支,当 `someValue` 与所有的 `case` 值都不匹配时,将执行 `default` 分支的代码块。

示例:

let day = 3

switch day {
case 1:
    print("星期一")
case 2:
    print("星期二")
case 3:
    print("星期三")
case 4:
    print("星期四")
case 5:
    print("星期五")
default:
    print("周末")
}

在这个示例中,根据 `day` 的值,Switch 语句将输出相应的星期几名称。因为 `day` 的值是 `3`,所以输出结果为 `"星期三"`。

搭配区间使用

let score = 85

switch score {
case 0..<60:
    print("不及格")
case 60..<70:
    print("及格")
case 70..<80:
    print("良好")
case 80...100:
    print("优秀")
default:
    print("无效分数")
}

在这个示例中,根据 `score` 的值,Switch 语句将输出对应的评分等级。这里使用了区间匹配来简洁地判断分数的范围。

搭配元组使用

let point = (2, 2)

switch point {
case (0, 0):
    print("原点")
case (_, 0):
    print("在 x 轴上")
case (0, _):
    print("在 y 轴上")
case (-2...2, -2...2):
    print("在正方形内部")
default:
    print("在正方形外部")
}

这个示例展示了如何使用元组匹配来判断一个点的位置关系。根据点的坐标,Switch 语句将输出相应的位置信息。

Swift 中,`switch` 语句是一种强大的多条件分支控制结构,允许根据一个表达式的值匹配多个可能的情况,并执行相应的代码块。Swift 的 `switch` 语句相比其他语言(如 Objective-C)更加灵活和安全,支持多种数据类型的匹配,并且默认不会“穿透”到下一个 `case` 分支,除非显式使用 `fallthrough` 关键字。 ### 基本语法 Swift 的 `switch` 语句由关键字 `switch` 后跟一个待匹配的值组成,接着是一系列 `case` 分支和可选的 `default` 分支。每个 `case` 可以包含一个或多个匹配项,且每个分支必须包含至少一条语句[^5]。 ```swift let grade = "B" switch grade { case "A": print("优秀") case "B": print("良好") case "C": print("及格") default: print("不及格") } ``` ### 支持的数据类型 与 Objective-C 不同的是,Swift 的 `switch` 语句不仅限于整型值,还可以匹配字符串、浮点数、元组等多种数据类型[^2]。 ```swift let value: Double = 3.14 switch value { case 3.14: print("这是一个近似的圆周率") case 2.718: print("这是自然对数的底数 e") default: print("未知数值") } ``` ### 多值匹配与 fallthrough 可以通过逗号 `,` 分隔多个匹配值,实现一个 `case` 匹配多个情况。若希望继续执行下一个 `case` 的代码块,可以使用 `fallthrough` 显式触发“穿透”行为[^4]。 ```swift let index = 202101 switch index { case 202101: print("xiaoMing") fallthrough case 202102: print("xiaoHong") default: print("未知信息") } ``` ### 模式匹配与范围判断 Swift 的 `switch` 还支持使用范围操作符进行模式匹配,使得条件判断更简洁。 ```swift let score = 85 switch score { case 0..<60: print("不及格") case 60..<80: print("中等") case 80...100: print("优秀") default: print("无效分数") } ``` ### 必须涵盖所有情况 Swift 要求 `switch` 语句必须涵盖所有可能的值,否则需要提供 `default` 分支来兜底处理未被明确覆盖的情况。这种设计提升了代码的安全性和可维护性[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lcannal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值