【发布时间】:2014-03-09 03:18:02
【问题描述】:
目前我有一个工作程序,但正在尝试不同的方法来查看它们是否有效。下面是我试图开始工作的代码,但有一个要求用户做出选择的功能。我想将该值返回到我的主函数中,该函数将运行一个包含案例的 do while 循环。最初我将它作为 if else if 语句,但如果可能的话想减少它。下面是我正在使用的代码。运行程序时,它只返回整个菜单,而不是从应该返回的值运行函数。
{
int choice;
createEmptySeats();
seatPrice();
do {
choice = menu();
switch (choice)
{
case '1':
reserveSeat();
break;
case '2':
displayInfo();
break;
case '3':
DisplaySummary();
break;
case '4':
break;
}
}
while (!seatFull());
return 0;
}
int menu()
{
int userSelection = -1;
while (userSelection < 1 || userSelection > 4)
{
cout << "Please Choose Option Below" << endl;
cout << "1: Reserve Seat(s)"<<endl;
cout << "2: Display Available Seats" << endl;
cout << "3: Display Information:" << endl;
cout << "4: Exit System" << endl;
cin >> userSelection;
}
return userSelection;
}
【问题讨论】:
-
错字?您需要在每个新的
case之前添加break;语句,否则它将落入下一个case。 -
这确实是正确的答案,除非失败行为是您想要的。
-
如果
userSelection = 0那么会发生什么,另外你忘记了break;在每个案例之后的声明。您可能也有default案例。 -
我在每个案例之后添加了中断。我确实忘记了,但它仍然没有返回一个函数,而是它只是再次给我菜单。
-
@user3397512 :您必须在每个案例之后添加
break;
标签: c++ function switch-statement do-while