Переключатель заявления: вам нужен последний перерыв? (В основном Javascript) - PullRequest
18 голосов
/ 28 апреля 2010

При использовании оператора switch() вы добавляете break; между отдельными объявлениями case:. Но как насчет последнего одного?

Обычно я просто отключаю это, но мне интересно, имеет ли это какое-то влияние на производительность, о котором я не думаю?

Я некоторое время размышлял об этом и не вижу, чтобы об этом спрашивали где-либо еще в Stack-O, но извините, если я пропустил это.

Я в основном задаю этот вопрос относительно Javascript, хотя полагаю, что ответ будет применяться ко всем switch() утверждениям.

Ответы [ 2 ]

26 голосов
/ 28 апреля 2010

Производительность не должна рассматриваться вообще. Даже если какой-то язык или реализация имеют разницу в производительности, которая измерима в микропроцессоре, это никогда не вызовет реальной проблемы с производительностью.

Я думаю, что наиболее важной проблемой является последовательность и ремонтопригодность. Если вы пропустите последний break, а затем другой разработчик добавит еще один оператор case, не осознавая, что вы пропустили break, поведение изменится. Это действительно вторая ошибка разработчика в том, что он не заметил, что break отсутствует, но его можно было бы избежать, если бы он был последовательным и имел break для всех case предложений.

4 голосов
/ 28 апреля 2010

Это совершенно не нужно с точки зрения производительности, но это очень хорошая привычка, поскольку вы можете забыть добавить разрыв, когда представите больше дел. Очевидно, что это не относится к default.

...