C#如何使用TryParse实现用户输入数字的无限次重试功能
实现方案
你原来的代码是硬编码了3次输入校验逻辑,只要把读取输入、解析校验的步骤放到while循环里,就能实现无限次重试的效果,完全不需要依赖try-catch,TryParse就可以独立完成需求:
// 提示用户输入年龄,存储信息,清除程序视图 Console.WriteLine("Enter " + name + "`s age:"); int age; bool parseOkay = false; // 解析失败时持续循环重试 while (!parseOkay) { string stringAge = Console.ReadLine(); parseOkay = int.TryParse(stringAge, out age); if (!parseOkay) { Console.WriteLine("无效的数字输入。\n请输入纯数字:"); } } // 循环退出时age已经是解析成功的整数,可以正常使用
逻辑说明
- 初始状态将解析成功标记
parseOkay设为false,保证循环可以正常启动 - 每次循环都会重新读取用户输入、执行解析操作,不会出现值不更新的问题
- 只要解析失败就会触发错误提示,进入下一轮循环等待用户重新输入,解析成功后标记会变为
true,自动退出循环
内容的提问来源于stack exchange,提问作者JohannaH
相关产品推荐
相关产品推荐

