C# If else语句无法按输入值输出Yay/Nay,请求排查问题
问题分析与修复方案
问题根源
你的代码核心问题出在Console.Read()的使用上:
Console.Read()仅读取输入的单个字符的ASCII码值,而非用户输入的完整数字。比如输入"5",它返回的是字符'5'的ASCII码53;输入"10",它只会读取第一个字符'1',返回ASCII码49。- 未使用
Convert.ToInt32时,直接将ASCII码值与10比较,像数字字符的ASCII码(48-57)都大于10,但你说全输出"You are Wrong",大概率是变量类型匹配错误导致的逻辑异常;使用转换后,所有数字字符的ASCII码都≥10,所以必然全输出"Yay",完全偏离需求。
修复后的代码
改用Console.ReadLine()读取完整输入行,配合安全转换方法实现需求,同时加入输入验证避免报错:
Console.Write("Welcome! Please Select Any Number: "); // 读取整行输入并尝试转换为整数 if (int.TryParse(Console.ReadLine(), out int x)) { if (x >= 10) { Console.WriteLine("Yay"); } else { Console.WriteLine("Nay"); } } else { Console.WriteLine("请输入有效的整数!"); }
关键说明
Console.ReadLine():读取用户输入的一整行文本,确保能获取完整的数字(如"10"、"5")。int.TryParse():安全完成字符串到整数的转换,避免输入非数字内容时抛出异常,同时通过out参数返回转换后的数值。- 修正输出文本为需求要求的"Nay",完全匹配最初的功能预期。
内容的提问来源于stack exchange,提问作者A-Zuma
相关产品推荐
相关产品推荐

