Поскольку вы уже подтвердили, что compare >= 10
после первого if
, вам действительно не нужен тест нижней границы для второго (или любого другого) if
s ...
Это не красиво, но switch
изначально был реализован хэшированием в C, так что он был на самом деле быстрее, чем цепочка if...else if
. Такая реализация плохо подходит для общих диапазонов, и поэтому также допускаются только постоянные случаи.
Однако, для примера, который вы приводите, вы могли бы сделать что-то вроде:
switch(compare/10) {
case 0:
// Do one thing
break;
case 1:
// Do another thing
break;
case 2:
// Do yet another thing
break;
default;
// Do nothing
break;
}