【问题标题】:Deleted input with user-inputted arrays in a do-while loop [duplicate]在do-while循环中删除了用户输入数组的输入[重复]
【发布时间】:2020-11-06 19:46:02
【问题描述】:

我使用此代码的目标是将用户输入的价格数据存储在一个 do-while 循环中,以便我可以将其用于计算送货地址。我决定采用一种方法,允许数组随着输入的每条数据而增加。数组的大小确实会增加,但输入的数据会随着每个循环而被删除。另外,我必须使用 do-while 循环

        {
            int itemList = 0;
            string userAnswer;

            //This section of the code is to have the user input their data for the later calculations
            //The do-while loop is used to count how many items the user has inputted, as well as storing the prices for the later calculations
            Console.WriteLine("Enter the price of your item:");
            do
            {
                itemList++;
                double[] List = new double[itemList];
                for (int i = 0; i < itemList; i++)
                {
                    List[i] = Convert.ToDouble(Console.ReadLine());
                }
                for (int i = 0; i < itemList; i++)
                {
                    Console.Write(List[i] + " ");
                }
                Console.WriteLine("Do you wish to enter more item prices? Yes or No");
                userAnswer = Console.ReadLine();

                if (userAnswer == "No")
                {
                    break;
                }

            }
            while (userAnswer == "Yes");```

【问题讨论】:

  • double[] List = new double[itemList]; 每次创建一个新列表。 How to extend arrays in C#
  • 每次迭代都会创建一个新数组。如果您想这样做,您需要resize 现有数组。见重复。更好的是,使用List&lt;T&gt;,在循环之前分配一次。另见重复。

标签: c# arrays user-input do-while


【解决方案1】:

使用 List 而不是数组并将其设置在 do-while 循环之外。要将值添加到列表中,请使用其 Add 方法。 另外,在 do-while 循环之后不要打印其内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-03
    • 2016-07-19
    • 2017-08-29
    • 2023-02-25
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多