如何编写简化的if条件

时间:2015-12-24 19:04:08

标签: if-statement

我有三个参数value1,value2,value3,我应该检查它们中的四个不同的值。是否有一种在Java或JavaScript中编写等效条件的简化方法:

      if ((value1 == 11) || (value1 == 88) || (value1 == 66) || (value1 == 33) || 
          (value2 == 11) || (value2 == 88) || (value2 == 66) || (value2 == 33) || 
          (value3 == 11) || (value3 == 88) || (value3 == 66) || (value3 == 33)) {

1 个答案:

答案 0 :(得分:0)

这是函数的3个不同版本,用于验证给定条件:

static final int[] SORTED_VALUES = new int[] {11, 33, 66, 88};

static boolean isAtLeastOneEquals1(final int value1, final int value2, final int value3) {
    for (final int i : SORTED_VALUES)
        if ((i == value1) || (i == value2) || (i == value3))
            return true;
    return false;
}

static boolean isAtLeastOneEquals2(final int value1, final int value2, final int value3) {
    return (Arrays.binarySearch(SORTED_VALUES, value1) >= 0)
            || (Arrays.binarySearch(SORTED_VALUES, value2) >= 0)
            || (Arrays.binarySearch(SORTED_VALUES, value3) >= 0);
}

static boolean isAtLeastOneEquals3(final int... values) {
    for (final int v : values)
        if (Arrays.binarySearch(SORTED_VALUES, v) >= 0)
            return true;
    return false;
}

我个人更喜欢第二个,但第三个更普遍