0

这可能是一个简单的问题,但...

在java中是否可以检查一个整数是否等于一个或另一个值而不重复变量检查..

例如,这应该工作

int n = 0;
if ((n == 1) || (n == 2)) {
//do stuff
}

但是有可能创造出这样的东西吗?

int n = 0;
if (n == 1 || 0) {
//do stuff
}
4

3 回答 3

9

不,您需要重复变量:

if (n == 1 || n == 2) {
    // do stuff
}
于 2012-07-06T00:20:14.237 回答
2

不可能直接在 Java 中执行此操作,但您可以编写一个函数轻松地为您执行此操作。

static boolean equalsAny(int n, int ... numbers)
{
   for (int num : numbers)
      if (n == num)
         return true;
    return false;
}

那么你需要做的就是if (equalsAny(n,1,2)) {/* do stuff */ }

于 2012-07-06T00:22:58.930 回答
1

你正在寻找一个case声明。

switch(n) {
  case 1:
  case 2:
    // Do something.
    break;
}

这可能听起来很滑稽,但我是认真的!casea和statement之间的区别if通常仅仅是代码在未来的发展方式。如果您真的只想在变量设置为离散数量的值时做某事,那么您应该使用case语句或者可能是enums。

于 2012-07-06T01:02:50.440 回答