2013-02-17 177 views
0

如何循環切換case?我需要能夠在每個開關箱之後循環回到菜單選擇以作出新的選擇。幫幫我?C++在Switch Case語句中循環

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 

回答

0

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

這很好,因爲它不會自動退出程序。

+0

感謝您的回覆 – Mac 2013-04-20 22:44:31

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方式:記得

enter image description here

+0

http://xkcd.com/292/ – 2013-02-17 08:05:17

+0

@ ta.speot.is哈哈我已經看到了! – 2013-02-17 08:06:32

+1

這不適合使用'goto'。 – 2013-02-17 08:43:51

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; 
}  

} 
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當輸入爲有效將返回一個正值。

0

編寫一個函數來封裝真實工作並調用它。

for(;;) { 
    cin >> choice; 
    if (!cin || do_user_command(choice) == cmd_exit) 
     break; 
}