如何使用未分配的局部变量?

时间:2018-06-03 10:52:56

标签: c# .net

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("How much values will you give to me?");
        int count = Convert.ToInt16(Console.ReadLine());
        double[] list = new double[count];
        int x = 0;
        do
        {
            list[x] = Convert.ToDouble(Console.ReadLine());
            x++;
        } while (x < count);
    }
}

在此代码中,我必须询问用户他们会给我多少价值?&#39;。但我想要的是,用户不必为程序指定值。它应该自动发生。我的意思是用户一旦启动程序就会开始给出数字。程序将在用户输入&#39; start&#39;而不是一个值。

我不知道我是否成功解释了我的问题。

2 个答案:

答案 0 :(得分:0)

如何做到这一点的一个例子是:

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        bool read = true;
        List<int> list = new List<int>();
        do{
            string input = Console.ReadLine();
            int x = 0; 
            if(input == "start")
            {
                read = false;
            }
            else if(int.TryParse(input, out x))
            {
                list.Add(x);
            }
            else 
            {
                Console.WriteLine("Invalid Input");
            }
        } while(read);
        foreach(var z in list)
        {
            Console.WriteLine(z);   
        }
    }
}

您必须根据需要进行调整,但这是您可以处理的方式。

请注意List<>它正在动态增长和缩小。这样您就不必指定要添加的数字量。这样你就可以随意添加,直到你给出Start命令。

答案 1 :(得分:0)

using System;
using System.Collections.Generic;

namespace Average
{
    class Program
    {
        static void Main(string[] args)
        {
            Calculator calc = new Calculator();
            bool read = true;
            List<int> list = new List<int>();
            do
            {
                string input = Console.ReadLine();
                int x = 0;
                if (input == "start")
                {
                    read = false;
                }
                else if (int.TryParse(input, out x))
                {
                    list.Add(x);
                }
                else
                {
                    Console.WriteLine("Invalid Input");
                }
            } while (read);
            Console.WriteLine(calc.Average(list));
            Console.ReadKey();
        }
    }
    class Calculator
    {
        public double Average(List<int> list)
        {
            double value = 0;
            foreach(var z in list)
            {
                value = value + z;
            }
            return value / (list.Count);
        }
    }
}

谢谢,好评。为了帮助我。