Недавно я столкнулся с следующим кодом на С++:
if (a)
{
f();
}
else if (b)
{
f();
}
else if (c)
{
f();
}
Где a, b и c - все разные условия, и они не очень короткие.
Я попытался изменить код на:
if (a || b || c)
{
f();
}
Но автор возразил, что мое изменение уменьшит читаемость кода. У меня было два аргумента:
1) Вы не должны увеличивать читаемость, заменив один ветвящийся оператор тремя (хотя я действительно сомневаюсь, что можно сделать код более читаемым, используя else, если вместо ||).
2) Это не самый быстрый код, и ни один компилятор не будет его оптимизировать.
Но мои аргументы не убедили его.
Что бы вы сказали программисту, пишущему такой код?
Считаете ли вы, что сложное условие является оправданием для использования else if вместо ИЛИ?