我有三个参数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)) {
答案 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;
}
我个人更喜欢第二个,但第三个更普遍