0

如何循环这个开关盒?在每个切换案例之后,我需要能够循环回到菜单选择以进行新的选择。帮助?

int _tmain(int argc, _TCHAR* argv[]){

    char choice;
    showWelcome();  // Show Welcom Screen
    showMenu();     // Show Menu Screen
    cin >> choice;  // Make Menu Secection
    {
            switch(choice)
            {
            case'1':
                seriesCalc();
                break;

            case'2':
                parallelCalc();
                break;

            case'q':
                system("cls");
                break;

            default:
                break;
                return 0;
            }

    }       

} // end main
4

5 回答 5

2
while(cin){ 
    cin >> choice;  // Make Menu Secection
    {
            switch(choice)
            {
            case'1':
                seriesCalc();
                break;

            case'2':
                parallelCalc();
                break;

            case'q':
                system("cls");
                break;

            default:
                break;
                return 0;
            }

    }       
}

另外,如果您不介意以下goto声明:

back: cin >> choice;  // Make Menu Secection
{
switch(choice)
{
case'1':
    seriesCalc();
    break;
case'2':
    parallelCalc();
    break;
case'q':
    system("cls");
    break;
default:
    break;
    return 0;
}
goto back;
}

但是,如果您打算继续goto前进:请记住

在此处输入图像描述

于 2013-02-17T07:51:55.463 回答
0

使用 while 循环或 do-while 循环。您可能希望在 switch 语句中添加退出的可能性,即while ( loop ) {case 'q': loop = false

这很好,因为它不会在之后自动退出程序。

于 2013-02-17T07:57:19.283 回答
0
int _tmain(int argc, _TCHAR* argv[]){

    char choice;boolean again=true;
    showWelcome();  // Show Welcom Screen
    showMenu();   
while(again){  // Show Menu Screen
    cin >> choice;  // Make Menu Secection
    {
            switch(choice)
            {
            case'1':
                seriesCalc();
                break;

            case'2':
                parallelCalc();
                break;

            case'q':
                system("cls");
                break;

            default:
                again=false;
            }

    }  
return 0; 
}    

} 
于 2013-02-17T08:03:33.717 回答
0

int _tmain(int argc, _TCHAR* argv[]){

char choice;
showWelcome();  // Show Welcom Screen
showMenu();     // Show Menu Screen
**while**(cin >> choice)  // Make Menu Secection
{
        switch(choice)
        {
        case'1':
            seriesCalc();
            break;

        case'2':
            parallelCalc();
            break;

        case'q':
            system("cls");
            break;

        default:
            break;
            return 0;
        }

}       

} // 结束主程序

当输入有效时,std::cin 将返回一个正值。

于 2013-02-17T08:25:45.433 回答
0

编写一个函数来封装真正的工作并调用它。

for(;;) {
    cin >> choice;
    if (!cin || do_user_command(choice) == cmd_exit)
        break;
}
于 2013-02-17T13:22:13.967 回答