是否可以在不使用Swift中的开关的情况下制作'if this或that'语句?

时间:2015-02-16 21:12:16

标签: swift

我想制作一个if语句,其中包含or。我知道你得到像switch这样的东西。但如果你不想要switch,你会怎么做?

所以我希望它看起来像下面这样(不起作用):

var number:Int = 1

if number == 1 or 5 {
    println("Lucy's Number")
}

3 个答案:

答案 0 :(得分:3)

对"或"使用逻辑运算符 ||

if (number == 1 || number == 5)
    {
         //do something
    }

文档:

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html

答案 1 :(得分:2)

如果要检查很多可能的情况,可以将值分组并过滤它:

if [1, 5, 9, 17, 33].filter({$0 == number}).count > 0 {
    println("Lucy's Number")
}

甚至:

if filter([1, 5, 9, 17, 33], {$0 == number}).count > 0 {
    println("Lucy's Number")
}

最后,正如@MartinR所建议的那样(经常被忽视的解决方案是最简单的解决方案:):)

if contains([1, 5, 9, 17, 33], number) {
    println("Lucy's Number")
}

答案 2 :(得分:0)

除了Dejan Skledars回答..你不需要括号:

var number = 1
if number == 1 || number == 5 {
    println("yes")
}

从Swift 1.2开始,您可以使用关键字“where”来使用其他条件。