如何为C#控制台菜单添加错误输入计数器?错误5次返回主菜单
C#控制台菜单添加错误输入计数器解决方案
以下是修改后的完整代码,实现了错误输入计数功能,累计5次错误后自动重置并返回主菜单:
static void MainWindow() { int wrongAttempts = 0; bool keepMenuOpen = true; while (keepMenuOpen) { Console.Clear(); Console.WriteLine("Menu"); Console.WriteLine(""); Console.WriteLine("1. Information"); Console.WriteLine("2. Contact"); Console.WriteLine("3. Extra"); Console.WriteLine("q. Exit"); string userInput = Console.ReadLine(); switch (userInput) { case "1": Information(); wrongAttempts = 0; // 正确输入后重置错误计数器 break; case "2": Contact(); wrongAttempts = 0; break; case "3": Extra(); wrongAttempts = 0; break; case "q": Exit(); keepMenuOpen = false; // 退出菜单循环 break; default: wrongAttempts++; Console.Clear(); if (wrongAttempts >= 5) { Console.WriteLine("错误次数过多,将返回主菜单"); Console.ReadKey(); wrongAttempts = 0; // 重置计数器,重新开始 } else { Console.WriteLine($"输入错误,剩余尝试次数:{5 - wrongAttempts}"); Console.ReadKey(); } break; } } }
关键改动说明:
- 新增
wrongAttempts变量:用于累计错误输入次数,正确选择菜单选项后会重置为0 - 替换递归为
while循环:避免原递归调用导致的计数器重置问题,同时降低栈溢出风险 - 错误次数判断:当错误次数达到5次时,提示用户并重置计数器,循环会自动重新显示主菜单
- 菜单循环控制:通过
keepMenuOpen变量控制菜单是否持续显示,选择退出选项时关闭循环
子方法适配建议
如果Information、Contact等子方法执行完毕后需要返回主菜单,只需在子方法末尾添加按键等待逻辑即可,例如:
static void Information() { Console.Clear(); Console.WriteLine("这是信息页面"); Console.WriteLine("按任意键返回主菜单..."); Console.ReadKey(); }
内容的提问来源于stack exchange,提问作者d0berr
相关产品推荐
相关产品推荐

