在 switch 中使用范围
本课属于 Coddy Swift 学习旅程的“逻辑与流程”单元。第 10 课,共 56 课。
你在基础知识中用 switch 处理过范围。这个技巧也适用于实际的分类问题,每个 case 都覆盖一段值。
let temp = 22
switch temp {
case ..<0: print("freezing")
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot")
}
// 暖和第一个 case ..<0 使用单侧范围形式,表示“严格小于 0 的任意值”。你也可以用 0... 表示“0 或更大”。
系统会从上到下检查各个分支,并采用第一个匹配的分支,因此请按从低到高的顺序排列(或者使用 default 作为兜底分支)。
挑战
入门从输入中读取一个整数:摄氏温度。使用一个带范围匹配分支的 switch 输出以下标签之一:
- 低于
0(负数):freezing 0...9:cold10...19:mild20...29:warm30...39:hot40及以上:scorching
输入 22 时,输出为 warm。
亲手试试
let temp = Int(readLine()!)!
// TODO:用范围对 temp 进行 switch 匹配,打印对应的标签
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Swift 在线编辑器