Рассмотрим следующие моменты:
- У вас есть функция, которая отображает список элементов и позволяет выбрать элемент из списка.
- Если вы вызываете функцию
A()
из функции B()
, когда вы завершаете выполнение кода в A()
, поток программы по умолчанию возобновляется в B()
. - Что происходит, если при выборе пункта меню в
main()
вызывается другая функция submenu()
, который отображает свой список предметов?Что произойдет в потоке программы, если вы завершите выполнение submenu()
и вернетесь к main()
, когда пользователь нажмет клавишу Enter)?
Использование отдельных функций для представления подменю является работоспособнымрешение, но это, вероятно, не лучшая практика.Существует много копий и вставок для обработки «механики» меню (отображение основного меню, выделение выделенного выбора и т. Д.) В каждой функции, что может привести к проблемам с исправлением ошибок и поддержанием этого кода в течение долгого времени - если есть ошибка вкак отображается одно меню, вы должны просмотреть все созданные вами функции меню и исправить ошибку в каждой из них.
Если вы хотите объединить это в более компактный и обслуживаемый подход,Вот некоторые вещи, о которых вы можете подумать:
- То, что вы делаете, это отображение списка.
- Список, который вы отображаете, представляет собой серию элементов.
- Каждый элемент может содержать собственный список, или, возможно, просто текст для отображения, или даже указатель на другую функцию.
Как бы вы создали функцию для отображения и взаимодействия с этим видомСписок объектов?