我正在尝试为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
语句中。
答案 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
}