Проверьте, имеет ли переменная какое-либо значение из заданного набора
-
20-09-2019 - |
Вопрос
Как я могу проверить, передает ли условие несколько значений?
Пример:
if(number == 1,2,3)
Я знаю, что запятые не работают.
Решение
if (number == 1 || number == 2 || number == 3)
Другие советы
Если вы используете PHP, предположим, что ваш список чисел представляет собой массив.
$list = array(1,3,5,7,9);
то для любого элемента вы можете использовать
if(in_array($element, $list)){
//Element present in list
}else{
//not present.
}
Функциональная структура:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
Надеюсь, это поможет.
if ((number >= 1) && (number <= 3))
Какой язык?
Например, в VB.NET вы используете слово OR, а в C# — ||
Поскольку вы не указываете язык, я добавляю решение Python:
if number in [1, 2, 3]:
pass
В T-SQL вы можете использовать оператор IN:
select * from MyTable where ID in (1,2,3)
Если вы используете коллекцию, для другого способа сделать это может быть оператор contains.
В C# есть другой способ добавления значений:
List<int> numbers = new List<int>(){1,2,3};
if (numbers.Contains(number))
Я предполагаю, что это язык C-стиля, вот краткое описание логики ЕСЛИ И ИЛИ:
if(variable == value){
//does something if variable is equal to value
}
if(!variable == value){
//does something if variable is NOT equal to value
}
if(variable1 == value1 && variable2 == value2){
//does something if variable1 is equal to value1 AND variable2 is equal to value2
}
if(variable1 == value1 || variable2 = value2){
//does something if variable1 is equal to value1 OR variable2 is equal to value2
}
if((variable1 == value1 && variable2 = value2) || variable3 == value3){
//does something if:
// variable1 is equal to value1 AND variable2 is equal to value2
// OR variable3 equals value3 (regardless of variable1 and variable2 values)
}
if(!(variable1 == value1 && variable2 = value2) || variable3 == value3){
//does something if:
// variable1 is NOT equal to value1 AND variable2 is NOT equal to value2
// OR variable3 equals value3 (regardless of variable1 and variable2 values)
}
Итак, вы можете увидеть, как можно связать эти проверки вместе, чтобы создать довольно сложную логику.
Для списка целых чисел:
static bool Found(List<int> arr, int val)
{
int result = default(int);
if (result == val)
result++;
result = arr.FindIndex(delegate(int myVal)
{
return (myVal == val);
});
return (result > -1);
}
В Java есть объекты, которые обертывают примитивные переменные (Integer для int, Long для long и т. д.).если вы хотите сравнить значения множества полных чисел (целых), вы можете инициировать группу целочисленных объектов, поместить их в итерацию, такую как ArrayList, перебрать их и сравнить.
что-то вроде:
ArrayList<Integer> integers = new ArrayList<>();
integers.add(13);
integers.add(14);
integers.add(15);
integers.add(16);
int compareTo = 17;
boolean flag = false;
for (Integer in: integers) {
if (compareTo==in) {
// do stuff
}
}
конечно, для нескольких значений это может быть немного громоздко, но если вы хотите сравнить множество значений, это сработает.
Другой вариант — использовать Java Наборы, вы можете поместить множество разных значений (коллекция отсортирует ваши входные данные, что является плюсом), а затем вызвать .contains(Object)
метод обнаружения равенства.