Ветвление событий [закрыто]

229
26 ноября 2016, 19:34

Есть задача, которая требует ветвления кода, я использовал машинное состояние switch case и enum.

Интересует какие еще есть хорошие варианты ветвления - например в моей задаче получилось 9 состояний. И можно ли такие вещи эффективно решать с помощью if else, или данный цикл подходит только для узких случаев.

Answer 1

Дать совершенно однозначный ответ невозможно - всегда есть масса факторов, учесть которые невозможно - вплоть до вкусовых предпочтений автора или стиля кодирования, принятого в этой команде.

switch - если он применим - пожалуй, будет поэффективнее, но опять же, если у него 50 case, то встает вопрос - не выбрать ли действительно map или иную структуру (скажем, если эти 50 значений - от 0 до 49, то так и просится массив/вектор) для выбора действия по значению.

Но могут быть ситуации, когда switch просто невозможно применить - простейший пример - для строк.

Но, откровенно говоря, при таком сильном ветвлении я бы задумался над вопросом - а правильно ли я спроектировал? нельзя ли обойтись без такого сильного ветвления вовсе?

READ ALSO
В чем ошибка при перегрузке оператора+?

В чем ошибка при перегрузке оператора+?

Перегружаю бинарный + в своем классе:

347
Умножение двух двоичных чисел с++

Умножение двух двоичных чисел с++

Не могли бы вы мне подсказать как написать код для умножения двух двоичных чисел? Нужно именно их умножить, поэтому через перевод в 10 сс не получится

322
Перегрузка оператора [][] в C++

Перегрузка оператора [][] в C++

У меня есть класс "Матрица"И в нём нужно перегрузить оператор [] так, дабы при обращении [][] к элементам имело смысл, аналогично встроенному

200
java, Intellij IDEA и remote development

java, Intellij IDEA и remote development

Каким образом настроить компиляцию на удаленной машине java-приложения ? В netbeans все достаточно просто и работает безотказно, а вот в intellij idea никак...

251