1. 基础语法:switch / case / default swift 复制 let value = 3 switch value { case 1: print("一") case 2: print("二") default: print("其他") // 输出 "其他" } 特点: 不需要显式写 break(Swift 的 case 默认不会穿透)。 必须覆盖所有可能性(或使用 default)。 2. fallthrough:强制穿透到下一 case swift 复制 let num = 2 switch num { case 2: print("匹配到2") fallthrough // 强制穿透到下一个 case case 3: print("继续执行3的逻辑") // 会输出 default: break } // 输出: // 匹配到2 // 继续执行3的逻辑 3. break 的用法 提前退出某个 case: swift 复制 let score = 85 switch score { case 0...60: print("不及格") case 61...100: if score == 100 { print("满分!") break // 提前退出 } print("及格") default: break } 4. 匹配元组(Tuple) swift 复制 let point = (1, 2) switch point { case (0, 0): print("原点") case (_, 0): // 忽略纵坐标 print("在X轴上") case (0, let y): // 值绑定(绑定纵坐标) print("在Y轴上,y=\(y)") case (-2...2, -2...2): print("在 (-2~2, -2~2) 范围内") default: print("其他位置") } 5. 匹配范围 swift 复制 let temperature = 25 switch temperature { case ..<0: print("结冰") case 0...20: print("凉爽") case 21...30: print("温暖") // 输出 case 31...: print("炎热") default: break } 6. 同一 case 中多个条件(类似 if 的 ||) swift 复制 let month = 3 switch month { case 1, 2, 12: // 匹配多个值 print("冬季") case 3...5: print("春季") // 输出 case 6...8: print("夏季") case 9...11: print("秋季") default: break } 7. case ... where 的用法 swift 复制 let number = 7 switch number { case let x where x % 2 == 0: // 匹配偶数 print("\(x) 是偶数") case let x where x % 2 != 0: // 匹配奇数 print("\(x) 是奇数") // 输出 default: break } // 简化写法: switch number { case _ where number > 10: // 忽略绑定,直接判断条件 print("大于10") default: print("小于等于10") }
If 和 Switch 的「條件判斷方式」差別是什麼?
if 是判斷是否為 true;switch 是判斷兩個值是否相等。
哪些情況用 switch 語句可以不用寫 default?
Swift 可以明確地把每一種 case 都個別列出來的類型,像是布林和 enum。
Top comments (0)