我可以在下面的开关语句中声明比某个数字“ <”或“>”的变量吗?
var a = 150
switch a {
case 10...50:
print ("the value is 10 to 50")
fallthrough
case 100...125:
print ("the value is 100 to 125")
case 125...150:
print ("the value is 125 to 150")
default:
print ("the value is unknown")
}
答案 0 :(得分:4)
是的,您可以使用where
子句在switch语句中检查其他条件。
var a = 150
var x = 250
switch a {
case _ where a > x:
print ("a is greater than x")
case _ where a < x:
print ("a is less than x")
default:
print ("a is equal to x")
}
或者您可以使用One sided range operator
检查数字是否大于或小于特定数字
switch a {
case ...50:
print ("the value is less than 50")
case 100...125:
print ("the value is 100 to 125")
case 125...:
print ("the value greater than 125")
default:
print ("the value is unknown")
}
答案 1 :(得分:0)
当然,您可以在switch语句中声明一个<或>一些数字的变量,但是我认为这不是您的意思。
我认为您实际上是在询问是否可以在案例评估中使用<或>。是的,您可以使用where
子句来做到这一点。
因此,您可以这样做,例如:
var a = 150
let b = 160
switch a {
case 10...50 where b < a: print ("the value is 10 to 50 and b < a")
case 100...125 where b == a: print ("the value is 100 to 125 and b == a")
case 125...150 where b > a: print ("the value is 125 to 150 and b > a")
default: print ("default")
}
将打印:
值是125到150,b> a
您可以在Swift文档中阅读有关Swift开关语句的更多信息:
https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html