Проверьте, имеет ли переменная какое-либо значение из данного набора - PullRequest
0 голосов
/ 07 октября 2009

Как проверить, проходит ли условие несколько значений?

Пример:

if(number == 1,2,3)

Я знаю, что запятые не работают.

Ответы [ 9 ]

4 голосов
/ 07 октября 2009
if (number == 1 || number == 2 || number == 3)
3 голосов
/ 13 июня 2011

Если вы используете 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 ] )

Надеюсь, это поможет.

1 голос
/ 07 октября 2009

Поскольку вы не указываете язык, я добавляю решение Python:

if number in [1, 2, 3]:
    pass
1 голос
/ 07 октября 2009

Какой язык?

Например, в VB.NET вы используете слово OR, а в C # вы используете ||

1 голос
/ 07 октября 2009
if ((number >= 1) && (number <= 3))
0 голосов
/ 04 августа 2015

В Java у вас есть объекты, которые переносят примитивные переменные (Integer для int, Long для long и т. Д.). если вы хотите сравнить значения между множеством полных чисел (целых чисел), то вы можете запустить группу объектов Integer, поместить их в итерацию, например 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 Sets , вы можете разместить множество различных значений (коллекция будет сортировать ваши входные данные, что является плюсом), а затем вызвать метод .contains(Object) для определения равенства.

0 голосов
/ 07 октября 2009

Для списка целых чисел:

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);
    }
0 голосов
/ 07 октября 2009

Я возьму язык C-Style, вот краткий учебник по логике IF ИЛИ:

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

Итак, вы можете увидеть, как вы можете соединить эти проверки вместе, чтобы создать довольно сложную логику.

0 голосов
/ 07 октября 2009

В T-SQL вы можете использовать оператор IN:

select * from MyTable where ID in (1,2,3)

Если вы используете коллекцию, может быть оператор содержимого для другого способа сделать это.

В C # для другого способа, который может быть проще добавить значения:

    List<int> numbers = new List<int>(){1,2,3};
    if (numbers.Contains(number))
...