Есть ли способ вернуться в главное меню? - PullRequest
0 голосов
/ 08 марта 2020

Я хочу написать программу на C ++ с открытыми меню.

void mainmenu(){
    //some code
    if (a==1){return menu2();}
}
void menu2(){
    //some code
    if (b==1){return menu3();}
}

void menu3(){
    //some code
    if (c==1) //from here, I want to return to the main menu(restart the program)
}

int main(){
    mainmenu();
}

Есть ли способ вернуться в главное меню из menu3? Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 марта 2020

Вызовите mainmenu () в определении menu3 (), если c == 1

0 голосов
/ 08 марта 2020

Конечно, вы можете писать рекурсивно (напрямую вызывая menuX() из каждого выбора), но это плохая практика из-за слишком многих причин.

Лучше заставить каждую функцию возвращать выбранную опцию и добавить бесконечный l oop в основном коде:

void mainmenu(){
    //some code
    if (a==1){return 2;}
}
void menu2(){
    //some code
    if (b==1){return 3;}
}

void menu3(){
    //some code
    if (c==1) {return 0;}
}

int main(){
    int menu = 0;
    while (true) {
        if (menu == 0) { menu = mainmenu(); }
        else if (menu == 1) { menu = menu1(); }
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...