如何使用C#中的函数编写程序来汇总5000个数字?

时间:2018-03-11 01:18:38

标签: c#

我是C#的初学者如何使用C#中的函数编写程序来汇总5000个数字?

static double sum (int sum)
    {
        double sumOfNumbers = 0;
        for (int i = 0; i < 5000; i++)
        {
            double num = double.Parse(Console.ReadLine());
            sumOfNumbers += num;
        }
        return sumOfNumbers;
    }

    static void Main(string[] args)
    {

        Console.WriteLine(sum());
        Console.ReadKey();
    }

1 个答案:

答案 0 :(得分:1)

JohnG在可用性方面对您的问题做了很好的评论。

您当前的代码会继续询问数字,但不会向用户提供当前总和或用户输入的数量的上下文。

我会选择这些方面的东西:

static void Main(string[] args)
{
    var sum = 0d;
    var count = 0;
    var continueAskingNumbers = true;
    do
    {
        Console.Write($"Current Sum: {sum} ({count}). Enter a number: ");
        var input = Console.ReadLine();
        if (double.TryParse(input, out var enteredNumber))
        {
            sum += enteredNumber;
            count++;
        }
        else
        {
            continueAskingNumbers = false;
        }
    } while (continueAskingNumbers);
}

由于您是初学者,我将在此代码中重点介绍一些概念:

  • 0d表示该值为double。如果我没有使用var关键字,则不需要这样做。
  • 我正在使用do { ... } while (...);循环,因为我总是希望代码至少执行一次。
  • Console.Write而不是WriteLine表示该值将在同一行输入,而不是在其下方的行中输入。
  • $"..."开头的美元符号表示插值字符串,允许通过{...}
  • 输出变量
  • 我正在使用double.TryParse,以防用户输入无法解析为double的内容。如果发生这种情况,那么我假设用户已完成输入数字并关闭应用程序。
  • out var enteredNumber使用C#7.0中的新概念,您不再需要单独声明out参数的变量。但是,它的行为完全相同,如果它分两步完成。