C#:如何在条件为false时执行循环?调整TryParse循环逻辑
解决C#中条件为false时执行循环的问题
哦,我懂你的问题了——你现在的循环逻辑刚好搞反了,咱们调整一下就能搞定!
首先得明确Int32.TryParse()的返回规则:当它成功把字符串转换成整数时,会返回true,同时把转换后的值存入out参数;如果输入不是合法整数(转换失败),就返回false。你原来的代码是转换成功时继续循环,这和你想要的“输入非整数时循环”正好相反。
修改后的代码实现
只需要给TryParse的返回值加一个取反操作符!,就能让循环在转换失败时继续执行,转换成功时终止:
string multiplierstr; int multiplier; do { Console.WriteLine("请输入一个整数:"); // 可以加个提示提升用户体验 multiplierstr = Console.ReadLine(); } while (!Int32.TryParse(multiplierstr, out multiplier)); // 到这里,multiplier已经是有效的整数,可直接用于后续逻辑 Console.WriteLine($"你输入的有效整数是:{multiplier}");
更简洁的写法(C# 7.0+)
如果你用的是C# 7.0及以上版本,可以直接在TryParse里声明out参数,省去提前定义变量的步骤:
string multiplierstr; do { Console.WriteLine("请输入一个整数:"); multiplierstr = Console.ReadLine(); } while (!Int32.TryParse(multiplierstr, out int multiplier)); // 此处可直接使用multiplier变量
这样调整后,只要用户输入的不是合法整数,循环就会一直运行,直到输入正确为止,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Seminix
相关产品推荐
相关产品推荐

