Есть задача, которая требует ветвления кода, я использовал машинное состояние switch case
и enum
.
Интересует какие еще есть хорошие варианты ветвления - например в моей задаче получилось 9 состояний. И можно ли такие вещи эффективно решать с помощью if else
, или данный цикл подходит только для узких случаев.
Дать совершенно однозначный ответ невозможно - всегда есть масса факторов, учесть которые невозможно - вплоть до вкусовых предпочтений автора или стиля кодирования, принятого в этой команде.
switch
- если он применим - пожалуй, будет поэффективнее, но опять же, если у него 50 case
, то встает вопрос - не выбрать ли действительно map
или иную структуру (скажем, если эти 50 значений - от 0 до 49, то так и просится массив/вектор) для выбора действия по значению.
Но могут быть ситуации, когда switch
просто невозможно применить - простейший пример - для строк.
Но, откровенно говоря, при таком сильном ветвлении я бы задумался над вопросом - а правильно ли я спроектировал? нельзя ли обойтись без такого сильного ветвления вовсе?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могли бы вы мне подсказать как написать код для умножения двух двоичных чисел? Нужно именно их умножить, поэтому через перевод в 10 сс не получится
У меня есть класс "Матрица"И в нём нужно перегрузить оператор [] так, дабы при обращении [][] к элементам имело смысл, аналогично встроенному
Каким образом настроить компиляцию на удаленной машине java-приложения ? В netbeans все достаточно просто и работает безотказно, а вот в intellij idea никак...