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
是目前为止最好的解决方案。事实上,我会选择,即使只有几个数字,如果所有想要的数字都是偶数,而所有其他数字都是奇数。