Всем привет! Новая статья о программировании в продолжении серии: Конечные автоматы, перечисления, выражения switch. На форуме как раз иногда поднимались вопросы, которые могли бы быть решены через конечные автоматы.
Ссылка не работает Вот правильная ссылка: http://wiki.amperka.ru/программирование:конечный-автомат (картинка удалена) upd: Спасибо за полезную статью.
Ох что то вы раздербанили один нормальный автомат на запчасти, так что он на себя стал не похож... Обработку событий с переходами между состояниями лучше в switch затолкать, иначе наглядность автомата резко падает. У чистой реализации автомата до и после switch{} по состояниям ничего не существует в принципе, кроме бесконечного цикла, а у вас там половина логики... нехорошо это. Резюме: лучше сделать ближе к формальному определению: держать тройку (событие+действие+новое состояние) вместе. Ну и про конечное состояние конечного автомата промолчали, case default сошел бы за него кстати.
Да, у меня переходы отдельно, логика отдельно. Часто можно встретить и ваши и наши варианты Для наглядности, да, можно будет чуть дополнить статью и продемонстрировать первым делом вариант, о котором вы говорите. Спасибо за критику!