如何修改性别输入验证代码使其循环至输入正确为止?
问题解决:循环无法终止的C#性别输入校验代码修改
你的循环条件逻辑错误导致了无限循环:使用||(逻辑或)时,无论输入什么合法值,总有一个条件会成立。比如输入"male"时,Gender != "Male"为true,整个表达式结果就是true,循环永远不会停止。
修改方案1:修正逻辑运算符
把||替换成&&(逻辑与),只有当输入内容同时不等于所有合法值时,才进入循环提示重新输入:
while (Gender != "male" && Gender != "Male" && Gender != "female" && Gender != "Female") { Console.WriteLine("Invalid input please select type Male or Female"); Gender = Console.ReadLine(); }
修改方案2:优化为不区分大小写判断(更简洁)
用string.Equals的不区分大小写参数,不用枚举所有大小写组合,代码更健壮:
while (!string.Equals(Gender, "male", StringComparison.OrdinalIgnoreCase) && !string.Equals(Gender, "female", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("Invalid input please select type Male or Female"); Gender = Console.ReadLine(); }
额外提示:如果首次进入循环前Gender未初始化,建议先读取一次输入再进入循环,避免空值判断问题:
string Gender = Console.ReadLine(); while (!string.Equals(Gender, "male", StringComparison.OrdinalIgnoreCase) && !string.Equals(Gender, "female", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("Invalid input please select type Male or Female"); Gender = Console.ReadLine(); }
内容的提问来源于stack exchange,提问作者DrHelix
相关产品推荐
相关产品推荐

