Установка нескольких целых чисел для значения теста оператора "If"
Я пытаюсь установить несколько целых тестов для одной переменной в инструкции 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
.
Ответы
Ответ 1
Если мы просто хотим проверить, четный или нет button1value
, мы можем сделать это с помощью оператора modulo (%
):
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...)
}
Ответ 2
Проверить и принять ответ nhgrif для лучшего варианта. Но только ради полноты, если вы хотите сохранить свой путь, вы можете использовать логический оператор OR ||
if(button1value == 2 || button1value == 4 || button1value == 6) {
groundspeed = 5.0
}
Это проверяет, истинно ли какое-либо из заданных логических значений.
Существует также логический оператор И &&
.
Ответ 3
Вы можете использовать contains
для проверки нескольких значений. Просто передайте массив, содержащий значения, которые вы хотите проверить, и переменную в качестве второго параметра:
if contains([2, 4, 6], button1value) {
groundspeed = 5.0
}