C#如何在do循环中跟踪动态变量并累加到运行总计?
累加输入价格计算总和的C#实现方案
原问题及代码
现有如下C#代码,count用于记录用户输入次数,price随用户输入变化:
price = 0; do { count = 1; Console.Write(" Enter price for item {0}", count); price = Convert.ToDecimal(Console.ReadLine()); count++; } while (price != -1);
需要新增total变量,在用户输入-1结束循环时,计算所有输入price的总和,但不清楚如何存储并累加价格。
修改后的代码
// 初始化总和、计数、单次价格变量 decimal total = 0; int count = 1; decimal price = 0; do { Console.Write("Enter price for item {0}: ", count); // 验证输入是否为有效数字 if (decimal.TryParse(Console.ReadLine(), out price)) { // 输入不是结束标记-1时,累加价格并计数 if (price != -1) { total += price; count++; } } else { Console.WriteLine("请输入有效的数字!"); } } while (price != -1); // 输出最终总和 Console.WriteLine($"所有商品总价:{total:C}");
关键说明
- 将
count和total的初始化移到循环外部,避免每次循环重置变量值 - 仅当输入的价格不是结束标记
-1时,才执行累加和计数操作,防止把-1计入总和 - 使用
decimal.TryParse替代Convert.ToDecimal,避免用户输入非数字内容导致程序崩溃 - 循环结束后直接输出计算好的
total即可得到所有输入价格的总和
内容的提问来源于stack exchange,提问作者StatisticalPizza
相关产品推荐
相关产品推荐

