You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:12:03