Replace Nested Conditional with Guard Clauses
A method has conditional behavior that does not make clear what the normal path of execution is
Use Guard Clauses for all the special cases
double getPayAmount() {
double result;
if (_isDead) result = deadAmount();
else {
if (_isSeparated) result = separatedAmount();
else {
if (_isRetired) result = retiredAmount();
else result = normalPayAmount();
};
}
return result;
};

double getPayAmount() {
if (_isDead) return deadAmount();
if (_isSeparated) return separatedAmount();
if (_isRetired) return retiredAmount();
return normalPayAmount();
};
For more inforamtion see page 250 of Refactoring