Java - 双重比较

时间:2011-04-17 21:39:21

标签: java if-statement

我该怎么做:

int a=5;
if(4<=a<=6){

}
在Java中

5 个答案:

答案 0 :(得分:7)

有两个条件:

int a=5;
if(4<=a && a<=6){

}

答案 1 :(得分:5)

除了其他人(if(4<=a && a<=6))提出的明显解决方案外,您可以使用commons-langIntRange

Range range = new IntRange(4,6)
if (range.containsInteger(5)) {..}

看起来有点过分,但视情况而定(如果不是那么简单),它会非常有用。

答案 2 :(得分:3)

if(4 <= a && a <= 6) {
  // do something
}

当然,你总是可以在一些Util类中编写这样的函数:

class Util {
    public static boolean inclusiveBetween(int num, int a, int b) {
        return num >= a && num <= b;
    }
}

然后你可以做类似

的事情
if(Util.inclusiveBetween(someResourceIntensiveOpReturningInt(), 4, 6)) {
    // do things
}

答案 3 :(得分:2)

你不能,我不认为。

有什么问题
int a = 5;
if(a >= 4 && a <= 6) {
}

?如果需要比较许多不同的变量,将它们放在一个数组中并对数组进行排序,然后比较数组。

答案 4 :(得分:1)

你可以这样做。它的丑陋,但可以稍微快一些。

int a = 5;
if(a - Integer.MIN_VALUE - 4 <= 2 - Integer.MIN_VALUE) {

}

这利用了使用下溢将两个比较合二为一。这可以节省大约1-2纳秒。但是,在某些用例中它可能会花费相同的金额,所以只有在尝试微调循环时才尝试它。