嘿大家我目前在使switch语句回到菜单开头时遇到一些麻烦。相反,它会进入另一个我不想要它的主要功能,除非用户选择正确的选择。
这是我的代码:
int main()
{
int choice;
bool menu = true;
cout <<"Please select one of the following options: \n";
cout << "1: Play\n"
"2: Help\n"
"3: Config\n"
"4: Quit\n";
cout << "Enter your selection (1, 2,3 or 4): ";
cin >> choice;
//*****************************************************************************
// Switch menu to display the menu.
//*****************************************************************************
if(menu)
{
switch (choice)
{
case 1:
cout << "You have chosen play";
break;
case 2:
cout << "You have chosen help\n";
cout << "Here is a description of the game Hangman and how it is played:\nThe word to guess is represented by a row of dashes, giving the number of letters, numbers and category. If the guessing player suggests a letter or number which occurs in the word, the other player writes it in all its correct positions";
break;
case 3:
cout << "You have chosen config";
break;
case 4:
cout << "You have chosen Quit, Goodbye.";
break;
default:
cout<< "Your selection must be between 1 and 4!\n";
}
}
getchar();
getchar();
cout << "You missed " << playGame("programming");
cout << " times to guess the word programming." << endl;
}
答案 0 :(得分:2)
您可以将if
替换为while
循环
cout << "Enter your selection (1, 2, 3 or 4): ";
while (menu)
{
cin >> choice;
menu = false;
switch (choice)
{
case 1:
cout << "You have chosen play";
break;
....
default:
cout<< "Your selection must be between 1 and 4!\n";
menu = true; // incorrect input, run loop again
}
答案 1 :(得分:0)
你可以像这样使用do while
循环:
int main()
{
int choice;
bool menu = true;
do{
cout <<"Please select one of the following options: \n";
cout << "1: Play\n"
"2: Help\n"
"3: Config\n"
"4: Quit\n";
cout << "Enter your selection (1, 2,3 or 4): ";
cin >> choice;
//*****************************************************************************
// Switch menu to display the menu.
//*****************************************************************************
switch (choice)
{
case 1:
cout << "You have chosen play";
int missed = playgame('programming');
break;
case 2:
cout << "You have chosen help\n";
cout << "Here is a description of the game Hangman and how it is played:\nThe word to guess is represented by a row of dashes, giving the number of letters, numbers and category. If the guessing player suggests a letter or number which occurs in the word, the other player writes it in all its correct positions";
break;
case 3:
cout << "You have chosen config";
break;
case 4:
cout << "You have chosen Quit, Goodbye.";
break;
default:
cout<< "Your selection must be between 1 and 4!\n";
}
}while(choice!=4);
getchar();
getchar();
cout << "You missed " << playGame("programming");
cout << " times to guess the word programming." << endl;
}
我在显示菜单之前添加了do循环,这样每次用户选择时,用户都会再次显示菜单,除非用户输入4,在这种情况下,程序来自do while循环。 您可以在案例1中调用函数playgame()。我编辑了我的答案以包含playgame();