Найти тему
7 подписчиков

Switch case против If Else: Интересный факт


Мы часто используем if-else или switch case создавая различные проверяющие выражения. Но знали ли вы что в condition check из двух условных операторов switch case более эффективный?

Для switch-case проверяет выражение basically branch table или бинарный поиск (O(log n)), для if-else каждое условие проверяется одно за другим пока не получим true.

switch(variable){

//

}

Когда switch-case используется подобны образом поток выполнения переходит в точку где variable имеет значение true и исключает иные проверки, но для маленького числа проверок разница между switch-case и if-else минимальна.

Но что более важно switch-case лучше читается и его применение поощряется там где это возможно в отличии от if-else.

П.С.

В надуманном примере где используется вариант

if ( i == n) {} else if (){} else ... где 0 < n < 100 выигрыша между switch case и if-else нет время выполнения идентично, при росте количества выражений сравнения до 1000 switch-case заметно проигрывает именно из-за O(log n)

Оригинал hclck.ru/...amn
Около минуты