首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简化if语句

简化if语句
EN

Stack Overflow用户
提问于 2015-06-25 18:27:10
回答 3查看 120关注 0票数 2

我有一份这样的声明

代码语言:javascript
复制
int val = 1;
if (val == 0 || val == 1 || val == 2 || ...);

有更简单的方法吗?例如:

代码语言:javascript
复制
int val = 1;
if (val == (0 || 1 || 2 || ...));

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

代码语言:javascript
复制
public boolean ifor(int val, int o1, int o2, int o3) {
    return (val == o1 || val == o2 || val == o3);
}

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-25 18:30:43

您可以使用varargs来泛化该函数:

代码语言:javascript
复制
public boolean ifor(int val, int... comparisons){
    for(int o : comparisons){
        if(val == o) return true;
    }
    return false;
}

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

票数 7
EN

Stack Overflow用户

发布于 2015-06-25 18:33:17

代码语言:javascript
复制
Arrays.asList(options).contains(value) // check if int value in int[] array called options
票数 2
EN

Stack Overflow用户

发布于 2015-06-25 18:33:56

您可以有一个带有有效值的枚举或Arraylist,然后使用适当的函数来检查该值。

其中一个使用数组列表的示例

List = Arrays.asList(1,2,3,4);(list.contains(3)) {/.}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31058013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档