【问题标题】:C#: How declare a variable to hold a sum and increment this variable each time through a while loopC#:如何声明一个变量来保存一个总和并每次通过一个while循环递增这个变量
【发布时间】:2017-07-25 01:05:42
【问题描述】:

我目前正在学习 C#,我正在尝试找出如何声明一个变量来保存一个总和并在每次通过 while 循环时递增这个变量。我的目标是询问用户想要运送多少包裹,然后获取每个包裹的重量(使用 while 循环)。问题是如何获取每个输入的输入(无论用户指定发送多少个包)并将其分配给一个变量,而不覆盖 while 循环中的最后一个条目,同时将它们全部加在一起并将组合显示为“总计”。

 static void Main(string[] args)
    {
        Console.WriteLine("Package Shipping Calculator");

        //ask user how many packages they want to ship
        Console.Write("How many packages would you like to ship? ");
        string userinput = Console.ReadLine();
        string userinput2;
        double result;
        double total=0;

        //create loop for weight in lbs that the package weighs. Multiply $2.35 per pound (weight*2.35)
        //for each increment, then add the result
        int counter = 1;

        while (counter <= int.Parse(userinput))
        {
            Console.Write("Please enter the weight of package {0}: ", counter);
            userinput2 = Console.ReadLine();
            result = double.Parse(userinput2) * 2.35;

            counter++;
        }

        counter --;

        Console.Write("\nThe cost to ship {0} packages is {1:C}", counter, total);



        Console.ReadKey();
    }

如您所见,我让柜台询问它需要多少次询问重量,但我不知道如何计算每个包裹的数量并将它们添加到循环内。我将不胜感激这方面的帮助。提前致谢。

【问题讨论】:

  • 您已经在问题的陈述中分解了问题:声明变量,在循环中递增它。所以解决每个问题。你知道如何声明一个变量吗?

标签: c# while-loop


【解决方案1】:

多亏了这些很好的建议,我才能够找到我的问题的答案。我将result = double.Parse(userinput2) * 2.35; 更改为result += double.Parse(userinput2) * 2.35;,然后像之前一样声明我的变量result=0,因为它没有被赋值。我从最后的 Write 行中删除了total,因为我更改为不再需要它的方法。

【讨论】:

  • 如果我的答案或 Armin 的答案是您使用的答案,请随时将您使用的答案标记为已接受答案,以便问题得到解决。很高兴它为你工作!干杯!
【解决方案2】:

在你的代码中添加

total = total + result;

紧接着

result = double.Parse(userinput2) * 2.35;

【讨论】:

  • 您的建议和 B. Witter 的建议都很有效,谢谢!
【解决方案3】:

我不得不说,你真的很亲密。我唯一可以建议的是,每次它通过它的循环时,你将之前的 result 添加到它自己。比如

while (counter <= int.Parse(userinput))
    {
        Console.Write("Please enter the weight of package {0}: ", counter);
        userinput2 = Console.ReadLine();
        result = (double.Parse(userinput2) * 2.35) + result;

        counter++;
    }

你应该没有问题,因为你已经在上面声明了 result0

【讨论】:

    【解决方案4】:

    啊!我花了一秒钟才弄清楚问题,因为它太小了!您需要将result = double.Parse(userinput2) * 2.35; 更改为result += double.Parse(userinput2) * 2.35;

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 2017-04-05
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 2014-12-01
      • 2014-04-03
      • 1970-01-01
      • 2012-10-15
      相关资源
      最近更新 更多