我的C#代码有问题还是Visual Studio Code出现故障?
问题根因
- 你调用的
Console.Read()仅读取输入流中的单个字符,返回值是该字符对应的ASCII编码数值,不是你输入的数字本身。例如你输入数字5,该方法返回的是字符'5'对应的ASCII值53,而非整数5。 - 你输入内容后按下的回车键会生成
\r、\n两个换行符,这两个字符会被后续循环的Console.Read()直接读取,不会等待你输入新内容,所以直观看起来就像循环没有执行。
修复方法
将Console.Read()替换为Console.ReadLine()读取整行输入,再转换为int类型即可,修复后的参考代码如下:
static void Main(string[] args) { int sum = 0; Console.Write("Started Program"); Console.WriteLine("..."); for (int i = 0; i < 10; i++) { Console.Write("Choose numbers you want to add: "); // 增加输入校验,避免非数字输入导致程序崩溃 int num = int.TryParse(Console.ReadLine(), out int input) ? input : 0; sum += num; } Console.WriteLine(sum); }
补充注意事项
如果修改代码后仍然无法正常交互输入,确认VS Code运行C#程序时使用的是系统默认终端,不要使用内置的调试控制台,调试控制台默认不支持交互式标准输入。
内容的提问来源于stack exchange,提问作者Monte Scott Barber
相关产品推荐
相关产品推荐

