如何修复C#代码中变量使用与输入判断逻辑的错误?
C#代码问题排查与修复
存在的问题
- 语法错误:
Console.ReadLine()方法不存在接收字符串类型参数的重载,代码中Console.ReadLine(answer)属于非法调用,无法通过编译。 - 逻辑遗漏:第一行无变量接收的
Console.ReadLine()会直接丢弃用户第一次输入的内容,没有用来做答案比对。 - 判断逻辑错误:if语句需要布尔类型的判断条件,原代码直接将
Console.ReadLine()返回的字符串放入判断条件,不符合语法要求。 - 冗余语法:
string answer = ("The punch line");中的括号无实际作用,属于多余写法。
修复思路
调整代码执行逻辑为:输出问题→读取用户输入的答案并存储→将用户输入和预设的正确答案做相等判断→判断为真时输出正确提示。
修复后完整代码
Console.WriteLine("What do you call a line of people who want to punch you?"); // 预设正确答案,删除冗余括号 string answer = "The punch line"; // 存储用户输入的内容 string userInput = Console.ReadLine(); // 比对用户输入和正确答案 if (userInput == answer) { Console.WriteLine("correct"); }
可选优化
如果需要兼容用户输入前后带空格、大小写不一致的场景,可以把判断逻辑修改为:
if (userInput?.Trim().Equals(answer, StringComparison.OrdinalIgnoreCase) == true)
可以避免用户输入多打空格、大小写输入错误导致的误判。
内容的提问来源于stack exchange,提问作者fork
相关产品推荐
相关产品推荐

