Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Имеет ли значение порядок “case-ов” в структуре “switch case”?

Я работаю с болшим количеством данных и они проходят через множество switch case операторов.
Есть ли разница в том как расределять case-ы внутри структуры? Будет ли более продуктивным поднять более часто встречаюшиеся случаи на первые строчки? Т.е. разбиваеться ли эта структура внутри на "if else" компоненты?
Работаю на java, но предполагаю что одинаковый подзод будет и в Сишеках.


Ответ

Для таких языков как Си, C++, C# - производительность весьма слабо зависит от количества блоков case и вовсе не зависит от их порядка (все равно компилятор их переупорядочит как ему нужно).
Для языка Java - производительность еще как зависит от порядка блоков, а иногда еще и результат может меняться (если вы используете класс с некорректной реализацией equals). Потому что компилятор Java преобразует оператор switch во что-то вроде серии "if - else if - else if - else"

Комментариев нет:

Отправить комментарий