2014-10-18 3 views
0
public boolean percentDepreciatedOutOfRange() { 
    if (percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX) { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

Может ли код, указанный выше, быть написан без инструкции else, и только после этого есть return false; и все еще иметь тот же результат? Если да, то почему? Это то, что я имею в видуBooleans and returns

public boolean percentDepreciatedOutOfRange() { 
    if (percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX) { 
     return true; 
    } 
    return false; 
} 
+3

Да. Оба означают то же самое. – TheLostMind

ответ

4

Вы должны просто написать

public boolean percentDepreciatedOutOfRange() { 
    return percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX); 
} 

, который является более удобным для чтения. Избегайте таких утверждений, как

If (xxx) { return true; } 
else { return false; } 

потому что если только добавляет шум вокруг выражения.

Причина, по которой это законно, состоит в том, что булевой тип является одинаковым при оценке выражения if и возвращаемого типа метода.

1

return Поскольку на самом деле выходит из функции (метод).

В случае, если if не введена, остальная часть кода будет выполнена нормально.

С тех пор как у вас есть returns, имеющий return false в конце функции, означает, что все до конца не выполнено.

Вы можете даже переписать его:

public boolean percentDepreciatedOutOfRange() { 
    if (percentDepreciated < DEPRECIATION_MIN) { 
     return true; 
    } 
    if (percentDepreciated > DEPRECIATION_MAX) { 
     return true; 
    } 

    return false; 
} 

Чтобы четко сформулировать тесты в методе.

0

Другой способ мне нравится:

  1. Определение возврата переменной в качестве 1-го заявления со значением по умолчанию.
  2. Изменение переменной в методе в различных БИЗ логики
  3. возвращать значение переменной (Single оператор возврата)

    общественного логический percentDepreciatedOutOfRange() { логическое состояние = ложь; status = percentDepreciated < DEPRECIATION_MIN || percentDepreciated> DEPRECIATION_MAX; статус возврата; }