Когда ваши входные данные могут быть четко разделены на отдельные случаи, я чувствую, что в основном лучше явно указать, что это за случаи, например, если вы ожидаете, что 'n' будет числом от 0 до 100, и у вас есть 3 случаи:
if (n >= 0 && n < 30) {
case1();
} else if (n >=30 && n < 70) {
case2();
} else if (n >=70 && n < 100) {
case3();
}
в некоторых ситуациях случай 'else' подходит для проверки ошибок
} else {
error("n should be between 0 and 100");
}
, если ваши данные проверяются на наличие ошибочных значений ранее, тогда может быть случай, который нужно использовать в другом случае для окончательного варианта, чтобы обеспечить небольшое улучшение производительности в таких языках, как C:
} else { // (n >= 70 && n < 100)
case3();
}
но это необходимо только из-за неспособности некоторых языков выразить домен функции, в языках, где домен может быть выражен четко, оптимизатор должен добавить это преимущество в производительности для вас, позволяя вам быть конкретным в своем коде, и облегчая добавление новых случаев позже
... конечно, это искусство, а не наука, и в некоторых случаях вы не можете следовать строгому правилу, я часто пишу код вроде:
if (p == NULL) {
doSomething();
} else {
doSomethingElse();
}
... оправдано тем фактом, что очень очевидно и неявно с первого условия if, для чего используется другое.