【问题标题】:Is there any way to return to the main menu?有什么方法可以返回主菜单吗?
【发布时间】:2020-06-20 12:44:07
【问题描述】:

我想编写一个涉及打开菜单的 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返回主菜单? 谢谢。

【问题讨论】:

    标签: c++ function menu


    【解决方案1】:

    您当然可以递归编写(直接从每个选项中调用menuX()),但由于太多原因,这是不好的做法。

    最好让每个函数返回选择的选项,并在主代码中添加一个无限循环:

    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(); }
            ...
        }
    }
    

    【讨论】:

      【解决方案2】:

      如果 c ==1,则在 menu3() 定义中调用 mainmenu()

      【讨论】:

      • 它不会重新启动程序。第二个mainmenu()终止后,会再次返回menu3()。
      猜你喜欢
      • 2015-06-22
      • 1970-01-01
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      相关资源
      最近更新 更多