Ответ будет немного отличаться в зависимости от языка.Например, в C и C ++ операторы switch
(select) могут превращаться компилятором в довольно эффективные таблицы переходов, отчасти потому, что они более строгие, чем условия операторов if
.(Хотя, честно говоря, современные компиляторы чертовски хороши в оптимизации всевозможных вещей.) Это может быть не так для всех языков / компиляторов (мне кажется, что VB6 в основном трактовал Select Case
как серию операторов If/ElseIf
.)
Читабельность определенно является фактором: использование switch
(или Select Case
в VB) говорит любому, кто следит за вами, что все ветви ниже ветвятся в общем состоянии, что весьма полезно.
Поддерживаемость (связанная с удобочитаемостью, но отличающаяся от нее) также является фактором.Если вы измените одну вещь, на которую разветвляется switch
, все готово;если у вас длинный набор операторов if
, легко пропустить один (или несколько) из них.