Этот вопрос в основном указывает на C / C ++, но я думаю, что другие языки также актуальны.
Я не могу понять, почему переключатель / регистр все еще используется вместо if / else if. Мне кажется, что это очень похоже на использование goto, и приводит к тому же типу грязного кода, в то время как те же результаты можно получить с if / else if гораздо более организованно.
Тем не менее, я вижу эти блоки вокруг довольно часто. Распространенное место для их поиска - рядом с циклом сообщений (WndProc ...), в то время как они являются одними из тех мест, где они вызывают самый тяжелый хаос: переменные распределяются по всему блоку, даже когда они не принадлежат (и не могут инициализируется внутри него). Особое внимание должно быть уделено тому, чтобы не бросать перерывы, и так далее ...
Лично я не использую их, и мне интересно, пропускаю ли я что-то?
Являются ли они более эффективными, чем если бы / еще?
Продолжаются ли они по традиции?