跳到主要内容

switch选择判断

  • switch 选择判断, 类似于if...else if...elseif...else的结构
  • switch 更适合于条件全相等 === 的情况下使用
  • 对大量的判断, 在速度上有一定的优化

正常用法

  • switch 语句根据表达式的值,依次与 case 后表达式的值进行比较
  • 如果相等, 则执行其后的语句段,只有遇到 break/return 语句,或者 switch 语句结束才终止
  • 如果不相等, 则继续查找下一个 case
  • switch 语句包含一个可选的 default 语句,如果在前面的 case 中没有找到相等的条件,则执行 default 语句,它与 if 判断中的 else 语句类似
let 当前星期几 = 5

switch (当前星期几) {
case 1:
logd("星期一")
break
case 2:
logd("星期二")
break
case 3:
logd("星期三")
break
case 4:
logd("星期四")
break
case 5:
logd("星期五")
break
case 6:
logd("星期六")
break
case 7:
logd("星期日")
break
default:
logd("输入错误")

}
// 返回 星期五
注意
  • 如果 case 里忘记加 break
  • 当遇到一个正确选项时, 之后的 case 会失去了判断功能
  • 由于缺少了 break, 会导致此后所有的 casedefault 均会被执行
let 当前星期几 = 5

switch (当前星期几) {
case 1:
logd("星期一")
case 2:
logd("星期二")
case 3:
logd("星期三")
case 4:
logd("星期四")
case 5:
logd("星期五")
case 6:
logd("星期六")
case 7:
logd("星期日")
default:
logd("输入错误")
}
// 返回 星期五
// 返回 星期六
// 返回 星期日
// 返回 输入错误

特殊用法

  • switch 原理其实就是判断条件语句,与case中的值是否相等
  • 因此,也可以像if...else if...else一样使用
let a = 0
switch (true) {
case a > 5:
logd(">5")
break
case a === 5:
logd("=5")
break
case a < 5:
logd("<5")
break
default:
logd("其他情况")
}