Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 为“设置多个整数”;如果;语句测试值_Swift_If Statement_Logical Operators - Fatal编程技术网

Swift 为“设置多个整数”;如果;语句测试值

Swift 为“设置多个整数”;如果;语句测试值,swift,if-statement,logical-operators,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 =

我试图在
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
语句中。

如果我们只想检查
按钮1value
是否为偶数,我们可以使用模(
%
)运算符:

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

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

if(button1value == 2 || button1value == 4 || button1value == 6) {
    groundspeed = 5.0
}
检查任何给定的布尔值是否为真


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

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

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

if
-
else
switch
语句相比,该语句的效率如何?(由于
contains()
肯定有时间和地点,所以仍然向上投票)是的,它会更慢,但除非执行数千次,否则您可能不会注意到任何东西。(或者数组中的元素数量显著增加。OP希望所有偶数都记住。)所有显示的偶数仅表示2,4,,六,。如果OP真的表示所有偶数,那么您的
%2
是目前为止最好的解决方案。事实上,我会选择,即使只有几个数字,如果所有想要的数字都是偶数,而所有其他数字都是奇数。