оператор switch — понятия C ++: использование переключателей для консольного меню

Во-первых, новичок в C ++.

Фон:
Я использую серию переключателей для простого меню консоли, как это:

...
Switch (user_input)

{

case 1:

Submenu1();

Break;

...

Функция подменю1 находится в другом файле .cpp. Каждое подменю имеет похожий случай возврата в главное меню и другие случаи для служебных программ, манипулирующих большими файлами данных. Решение компилируется, и я могу перемещаться назад и вперед из меню в подменю и обратно.

Вопросы:
Каждый раз, когда я делаю новый выбор в меню, я прав, думая, что я прячусь в ряды этих переключателей? Не похоже, что я когда-либо доберусь до операторов break, так как консоль все еще выполняет следующую функцию. Повлияет ли это когда-нибудь на что-нибудь? Независимо от конкретной работы этого экземпляра, я ищу руководство по лучшим практикам и принципам, а не просто обдумываю их.

Спасибо!

-1

Решение

Я прячусь во лжи этих выключателей?

Да, и это плохо.

Повлияет ли это когда-нибудь на что-нибудь?

Да, это сделает вашу программу неуправляемой.

Вам обязательно нужно найти способ вернуться в подменю, как только оно будет готово. Создайте свою программу в иерархическом порядке. Войдите в подменю, затем вернитесь в главное меню.

Если ваш поток становится более модульным, то вы должны иметь

Switch (user_input)
{
case 1:
nextMenu = Submenu1;
Break;
...
}

// later on, in a way that doesn't nest

nextMenu.display();

Где ваши меню — классы, или функторы, или что-то еще. Но пока, найдите способ использовать return;

0

Другие решения

Других решений пока нет …