如果声明:比较多个整数

时间:2016-01-31 22:22:41

标签: java android if-statement int

我正在开发一款在1年后变得非常大的应用程序。所以我试图在各方面提高它的表现。 我不是专业人士,过去一年我一直在自学编程,当我回顾过去我写过的一些内容时,他们看起来很傻,如下所示:

    if (screenPos == 0 || screenPos == 20 || screenPos == 22){

//do something
} else {

}

是否有最简单/更短的方法将值与几个整数进行比较?

类似的东西:

    if (screenPos != 0, 20, 22){
    //do something
} 

或者可能在数组列表中添加这些数字并检查“if(screenPos是否存在于数组中)”?

我知道这是一个新手问题,抱歉。我一直在寻找答案,但还没有找到答案。

提前致谢

3 个答案:

答案 0 :(得分:2)

你可以这样做:

switch(screenPos) {
    case 0:
    case 20:
    case 22:
        //do something in case screenPos was equal to 0 or 20 or 22
        break;
    default:
        // do something otherwise
}

答案 1 :(得分:1)

您可以使用:

ArrayList<Integer> test = Arrays.asList(0,20,22);
//...
if(test.contains(screenpos)){
    //...
}

编辑(感谢@Gabe Sechan):正如评论中所指出的那样,在if语句之外初始化List更有效。

当然,最好使用一个开关,但是如果你想要一些短的话,这将是不错的,尽管有些不同寻常

答案 2 :(得分:1)

嗯,你正在检查没有明显模式的具体整数,所以没有模数,乘法og除法的自然技巧。上面提到的所有其他建议都是可行的(我最喜欢Mulligans),但我认为你应该做的最重要的事情是将条件重构为另一种方法并在这里进行检查。

如果您采用经典的面向对象编程视角,这显然是最佳实践。