为&#34设置多个整数;如果"声明测试值

时间:2015-05-18 22:22:47

标签: swift if-statement logical-operators

我正在尝试为if语句中的单个变量设置多个整数测试。逻辑运算符由于它们必须是布尔值而无法工作。

例如:

if self.nodeAtPoint(location) == self.fake {
    groundspeed = 35.0
    self.button1value++

    if(button1value == 2) {
      groundspeed = 5.0
    }

    if(button1value == 4){
        groundspeed = 5.0
    }

    if(button1value == 6) {
        groundspeed = 5.0
    }
}

目标是能够将所有偶数显示在一个if语句中。

3 个答案:

答案 0 :(得分:21)

如果我们只想检查button1value是否均匀,我们可以使用模(%)运算符来执行此操作:

if button1value % 2 == 0 {
    // button1value is even
    groundspeed = 5.0
}

如果我们正在检查其他类型的集合,我们可以使用switch声明:

switch button1value {
    case 2,4,6:
        // button1value is 2, 4, or 6
        groundspeed = 5.0
    default:
        // button1value is something else
}

如果我们想要,我们也可以使用Swift的switch语句做其他巧妙的技巧:

switch (button1value % 2, button1value % 3) {
    case (0,0):
        // button1value is an even multiple of 3 (6,12,18...)
    case (0,_):
        // button1value is an even number not a multiple of three (2,4,8,10,14...)
    case (_,0):
        // button1value is an odd multiple of three (3,9,15,21...)
    default:
        // button1value is none of the above: (1,5,7,11...)
}

答案 1 :(得分:6)

检查并接受nhgrif的答案以获得更好的变体。但是为了完整起见,如果你想保持自己的方式,你可以使用逻辑OR运算符||

if(button1value == 2 || button1value == 4 || button1value == 6) {
    groundspeed = 5.0
}

检查是否有任何给定的布尔值为真。

还有一个逻辑AND运算符&&

答案 2 :(得分:5)

您可以使用contains检查多个值。只需传递一个包含要测试的值的数组,并将变量作为第二个参数传递:

if contains([2, 4, 6], button1value) {
    groundspeed = 5.0
}