[#] Оператор break и fallthrough
habrabot(difrex,1) — All
2018-01-27 18:45:14


![operator break][1]

Предлагаем вашему вниманию цикл статей, посвященных рекомендациям по написанию качественного кода на примере ошибок, найденных в проекте Chromium. Это вторая часть, которая будет посвящена оператору switch, а, вернее, проблеме забытого оператора break.

Многие годы я изучал ошибки в программах и сейчас могу с уверенностью заявить, что в C, а вслед за ним и в C++, оператор _switch _ сделан неправильно. Я понимаю, что возможность не писать _break_, сделанная, чтобы передать управление дальше, позволяет писать изящные алгоритмы. Но всё равно огромное количество ошибок убедило меня, что был выбран неправильный подход. Понятно, что теперь уже поздно. Просто хотелось сказать, что правильным решением было бы обязательно писать слово _break_ или обратное ключевое слово, например, _fallthrough_. Сколько бы сил, времени и денег было сэкономлено. Конечно, этот недостаток не сравнится с [Null References: The Billion Dollar Mistake][2], но всё равно большой ляп.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/4dc/8a3/a81/4dc8a3a810f3bfff54b6c32f1debea3a.png
[2]: https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare
[3]: https://habrahabr.ru/post/347668/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347668#habracut