if语句,将一个变量与多个变量进行比较

时间:2014-01-17 19:28:12

标签: java if-statement operators

示例:

int value = someValue;
if (value == (valueOne OR valueTwo OR valueThree)){
//do code
}

我希望避免在下面的示例中重新输入value

if (value == valueOne || value == valueTwo || value == valueThree)

6 个答案:

答案 0 :(得分:5)

您无法使用Java中的if语句执行此操作,但使用switch语句。

switch (value) {
   case 1:
   case 2:
   case 3: {
      //do something
   }
}

这将检查value是否等于123

答案 1 :(得分:3)

您使用||进行布尔OR比较。单个栏|用于位操作。您当前的语法不正确。

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

当然,在这里进行范围检查可能会更好:

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

不确定你要做什么。

如果OR比较在这里对你更有意义,你应该为这些值定义一些常量,或者考虑枚举类型。文字1,2和3对其他开发者没有意义。

答案 2 :(得分:3)

这可以在一次检查中完成:

int value = someValue;
if(Arrays.asList(valueOne, valueTwo, valueThree).contains(someValue)){
    // do the things
}

答案 3 :(得分:2)

您还可以使用apache commons中的Range类:

Range r = Range.between(1,3);
if(r.contains(value)){

}

答案 4 :(得分:1)

使用HashSet

可能会更好
 Set<Integer> myset = new HashSet<Integer>();
//Add values to your set
if(myset.contains(myvalue));
{
    //... Do what you want.

这使您的算法变得灵活,当您想要检查新值时,不必手动编码新的检查。

答案 5 :(得分:0)

  == tests for reference equality.

 .equals() tests for value equality.

   //for loop to iterate through the range of values
  if(setofValues.equals( value)) ; // do something