Во-первых, новичок в C ++.
Фон:
Я использую серию переключателей для простого меню консоли, как это:
...
Switch (user_input)
{
case 1:
Submenu1();
Break;
...
Функция подменю1 находится в другом файле .cpp. Каждое подменю имеет похожий случай возврата в главное меню и другие случаи для служебных программ, манипулирующих большими файлами данных. Решение компилируется, и я могу перемещаться назад и вперед из меню в подменю и обратно.
Вопросы:
Каждый раз, когда я делаю новый выбор в меню, я прав, думая, что я прячусь в ряды этих переключателей? Не похоже, что я когда-либо доберусь до операторов break, так как консоль все еще выполняет следующую функцию. Повлияет ли это когда-нибудь на что-нибудь? Независимо от конкретной работы этого экземпляра, я ищу руководство по лучшим практикам и принципам, а не просто обдумываю их.
Спасибо!
Я прячусь во лжи этих выключателей?
Да, и это плохо.
Повлияет ли это когда-нибудь на что-нибудь?
Да, это сделает вашу программу неуправляемой.
Вам обязательно нужно найти способ вернуться в подменю, как только оно будет готово. Создайте свою программу в иерархическом порядке. Войдите в подменю, затем вернитесь в главное меню.
Если ваш поток становится более модульным, то вы должны иметь
Switch (user_input)
{
case 1:
nextMenu = Submenu1;
Break;
...
}
// later on, in a way that doesn't nest
nextMenu.display();
Где ваши меню — классы, или функторы, или что-то еще. Но пока, найдите способ использовать return
;
Других решений пока нет …