C#技术问题:实现输入数字后输入End终止循环并求和
C#实现输入数字求和(输入End终止循环)
你的代码存在几个关键问题:
- 直接对输入执行
Convert.ToInt32(),一旦输入"End"会抛出转换异常,而且enteredText变量从未接收用户输入,永远无法触发终止循环的条件。 sum变量初始化时就计算空列表的和,最终输出结果必然错误,应该等所有数字输入完成后再计算总和。
以下是修正后的完整代码:
List<int> nums = new List<int>(); string enteredText = ""; while (true) { Console.Write("Enter a number or the word End to finish : "); enteredText = Console.ReadLine(); // 判断输入是否为End(忽略大小写,输入end也可终止) if (enteredText.Equals("End", StringComparison.OrdinalIgnoreCase)) { break; } // 尝试将输入转换为整数,成功则加入列表,失败则提示错误 if (int.TryParse(enteredText, out int number)) { nums.Add(number); } else { Console.WriteLine("输入无效,请输入数字或End"); } } // 循环结束后计算并输出总和 int sum = nums.Sum(); Console.WriteLine($"Sum = {sum}");
关键说明:
- 先将用户输入存入
enteredText字符串,优先判断是否为终止指令"End",避免转换异常。 - 使用
int.TryParse()进行安全转换,即使输入非数字(除End外)也不会崩溃,还能给用户友好提示。 - 总和计算放在循环结束后,确保统计所有有效输入的数字。
内容的提问来源于stack exchange,提问作者Clinton Parris
相关产品推荐
相关产品推荐

