在Switch语句中声明var

时间:2019-04-05 05:10:38

标签: swift switch-statement

我可以在下面的开关语句中声明比某个数字“ <”或“>”的变量吗?

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")
}

2 个答案:

答案 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