我有这样的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,我不能这样做(我应该创建新的参数另一个函数),或者如果我想减少参数o1和o2.老实说我不知道我是否解释过,如果你问,我会尽力解释.
您可以使用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)
然后你可以像任何其他函数一样调用它,无论你想要多少比较.