2015-12-24 5 views
0

У меня есть три параметра value1, value2, value3, и я должен проверить четыре разных значения в них. Есть упрощенный способ записать эквивалентное условие в Java или в JavaScript:Как написать упрощенное условие if

 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

здесь есть 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; 
} 

лично я предпочитаю второй один, но 3-й более универсальный

Смежные вопросы