【发布时间】:2015-05-19 14:40:59
【问题描述】:
我修改了原始代码,前两个无效输入提示工作正常。当我在此提示中实现相同的逻辑以开始新游戏时,我的程序将无法识别无效输入,输入任何键都会开始新游戏。
void newGame()
{
char newGameChoice = 'a';
cout << "\n--------------------------------------------------------------------------------" << endl;
cout << "Press N to play a new game\n";
cout << "Press X to exit\n\n";
cout << "--------------------------------------------------------------------------------" << endl;
cin >> newGameChoice;
newGameChoice = toupper(newGameChoice);
if (newGameChoice == 'N');
{
char userIn = 'a';
char c = 'a';
game(userIn, c);
}
while (newGameChoice != 'N' || 'X')
{
cout << "--------------------------------------------------------------------------------";
cout << "\n Invalid input. Please try again.\n" << endl;
cout << "--------------------------------------------------------------------------------" << endl;
newGame();
}
}
【问题讨论】:
-
请提供更短的代码示例
-
与您的问题无关,但是...您真的打算在这里进行无限递归吗?通过不让
start()调用自身,而是将对start()(在main()内)的调用置于无限循环中,您可以获得相同的效果和更好的整体结果。 -
@Brahim 基于与此 OP 不同的帖子,他实际上正在使用 Visual Studio(您的观点当然仍然有效——而且他应该更容易在该环境中浏览代码)。
-
我怎样才能从一开始就回到主界面?如果我没记错的话,我会简单地把 return 0;然后程序又回到main中调用它的地方?