You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中不使用switch 借助if else if语句判断变量匹配区间的实现问题

Swift else if 区间匹配修正方案

原代码错误点

  • 你写的Fahrenheit == 0 - 20属于逻辑错误:代码会优先计算0-20得到数值-20,实际效果是判断温度是否等于-20,完全没有实现区间匹配的效果
  • 原有区间边界存在重叠(比如41-60和60-80都包含60,会导致匹配逻辑冲突)

修正后代码

使用Swift闭区间运算符...的contains()方法即可判断变量是否落在指定区间内,完全符合你不用switch、只用if分支的要求:

var Fahrenheit = 10
if Fahrenheit < 0 {
    print("Too Cold for Outdoors")
} else if (0...20).contains(Fahrenheit) {
    print("Very Cold Weather")
} else if (21...40).contains(Fahrenheit) {
    print("Cold")
} else if (41...60).contains(Fahrenheit) {
    print("Normal")
} else if (61...80).contains(Fahrenheit) {
    print("Nice")
} else if (81...90).contains(Fahrenheit) {
    print("Warm")
} else if Fahrenheit > 90 {
    print("Hot")
}

如果需要左闭右开的区间,可以用半开区间运算符..<,比如0..<21和0...20的匹配效果完全一致。

内容的提问来源于stack exchange,提问作者Gourdrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:54:02