Expressions and statements
ES.70
Предпочитайте оператор `switch` оператору `if`, когда есть выбор
Причина
- Читаемость.
- Эффективность:
switchсравнивает с константами и обычно лучше оптимизируется, чем цепочка проверок вif-then-else. switchпозволяет выполнять эвристическую проверку согласованности. Например: все ли значенияenumохвачены? Если нет — есть лиdefault?
Пример
void use(int n)
{
switch (n) { // хорошо
case 0:
// ...
break;
case 7:
// ...
break;
default:
// ...
break;
}
}
вместо:
void use2(int n)
{
if (n == 0) // плохо: цепочка if-then-else с проверкой набора констант
// ...
else if (n == 7)
// ...
}
Контроль
Отмечать цепочки if-then-else, проверяющие (только) константы.