Здравствуйте, Sheridan, Вы писали:
ARK>>Ну вы представляете, что такое структурное программирование?
ARK>>Понимаете, что "порядок следования инструкций" и "направление безусловного перехода" — это вещи не связанные?
S>Я — да. А ты понимаешь, что код не следует загромождать лишними сущностями, если можно написать лакончно, это будет читабельно и будет работать?
То, что сегодня лаконично и читабельно, завтра окажется говнокодом.
Для того, чтобы формализовать правила, что лаконично, а что нет, изобрели структурное программирование. Сишный свитч нарушает правила структурного программирования.
S>То есть мне нужно создать новый проект, написать кучу кода, обложить тестами и выложить на гитхаб дабы было понятно откуда в переменной появляется значение? Или мы всетаки опустим незначащие сущности?
Мой код _полностью_ эквивалентен вашему первоначальному варианту. Этот факт вам понятен?
Если выбор осуществляется именно флагом, то да, можно и нужно использовать и свитч. В сочетании с набором функций. Fallthrough при этом не нужен.
S>Погоди. Давай расставим точки везде. Я соглашаюсь с тобой, что в подавляющем большинстве случаев везде в case'ах присутствует break, что делает невозможным переход в низлежайший case.
S>А ты ВНЕЗАПНО со мной не соглашаешься.
А, да. Тут моя ошибка, прошу прощения. Я неправильно понял.
S>У меня нет цели доказать что switch истина в последней инстанции и все обязаны его применять. Я всего лишь пытаюсь рассказать о том, что его семантика имеет смысл и что есть варианты использовать эту семантику на пользу себе. А тут же в ветках, в том числе и у тебя, просматривается "свитч — гавно, его клепали неучи и вообще его использовать — зло как и goto"
Ну, смысл можно найти во всем. Всегда найдется некоторый контекст, в котором некоторое средство будет удобно и адекватно.
А здесь говорится, что выбор создателей С был, по мнению некоторых людей, не вполне удачен. Для языка общего назначения, которым С и стал по факту.
S>Примеры, камрад, примеры. Наговнокодь, как я, немножко кода по типу того что я показал. А лучше 1-в-1. И покажи результат.
Хорошо. Я сделаю это сегодня, чуть позже.