简化if语句

mik*_*hts 2 java if-statement

我有这样的if语句

int val = 1;
if (val == 0 || val == 1 || val == 2 || ...);
Run Code Online (Sandbox Code Playgroud)

有没有办法以更简化的方式做到这一点?例如:

int val = 1;
if (val == (0 || 1 || 2 || ...));
Run Code Online (Sandbox Code Playgroud)

我决定通过创建这样的函数来解决这个问题:

public boolean ifor(int val, int o1, int o2, int o3) {
    return (val == o1 || val == o2 || val == o3);
}
Run Code Online (Sandbox Code Playgroud)

但是,这是不够的,因为如果我想加入另一个参数ifor,例如o4,我不能这样做(我应该创建新的参数另一个函数),或者如果我想减少参数o1o2.老实说我不知道​​我是否解释过,如果你问,我会尽力解释.

res*_*man 7

您可以使用varargs来概括该函数:

public boolean ifor(int val, int... comparisons){
    for(int o : comparisons){
        if(val == o) return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像任何其他函数一样调用它,无论你想要多少比较.