检查变量是否具有给定集合中的任何值

时间:2009-10-07 14:36:59

标签: conditional if-statement statements

如何检查条件是否通过多个值?

示例:

if(number == 1,2,3)

我知道逗号不起作用。

9 个答案:

答案 0 :(得分:4)

if (number == 1 || number == 2 || number == 3)

答案 1 :(得分: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 ] )

希望有所帮助。

答案 2 :(得分:1)

if ((number >= 1) && (number <= 3))

答案 3 :(得分:1)

用什么语言?

例如在VB.NET中使用单词OR,在C#中使用||

答案 4 :(得分:1)

由于您没有指定语言,我添加了Python解决方案:

if number in [1, 2, 3]:
    pass

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我将假设一种C风格的语言,这是关于IF AND OR逻辑的快速入门:

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

因此,您可以看到如何将这些检查链接在一起以创建一些相当复杂的逻辑。

答案 7 :(得分:0)

有关整数列表:

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

答案 8 :(得分:0)

在Java中,您有包装原始变量的对象(Integer表示int,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)方法来定位相等。