2017-01-22 4 views
-1

Мне нужно конденсировать два, если они есть, в одно утверждение. Код в порядке, однако он не может иметь два if-else. Оба кода имеют одинаковую проблему.Java Conditional делает его простым

public boolean isClear(int index) { 
    if (index < 32) { 
     if ((bits & 0x00000001 << index) == 0) 
      return true; 
     else 
      return false; 
    } else 
     return true; 
} 

public boolean isSet(int index) { 
    if (index < 32) { 
     if ((bits & 0x00000001 << index) != 0) 
      return true; 
     else 
      return false; 
    } else 
     return false; 
} 
+2

Как насчет использования '&&' – NewUser

+0

И? Вы не хотите делать это сами или что это вопрос/путаница здесь? – Tom

+0

Я не знаю, как это сделать. – BabyC0d3eR

ответ

2

Шортер:

public boolean isClear(int index) 
{ 
    return (index < 32) ? (bits & 0x00000001<<index) == 0 : true; 
} 
2

Существует только один путь в isSet который возвращает true, так return он. Мол,

public boolean isSet(int index) { 
    return (index < 32) && ((bits & 0x00000001 << index) != 0); 
} 

И тогда isClear может быть отрицанием этого.

public boolean isClear(int index) 
{ 
    return !isSet(index); 
} 
+0

Спасибо за быстрый ответ. Он работал как шарм. Также спасибо @schwobaseggl за ваш вклад. – BabyC0d3eR

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

  • Нет связанных вопросов^_^