如何根据条件向数组添加元素

本文关键字:数组 添加 元素 条件 何根 | 更新日期: 2023-09-27 18:33:08

我正在研究这个简单的 C# 程序,将元素添加到数组中。我允许用户输入 5 个数字,如果用户输入无效有效,我有一条消息。我的问题是,无论用户是否输入无效数字,我仍然想在我的数组中添加 5 个数字。

我的代码有效,但是假设用户输入 3 个数字,然后输入 2 个单词,我最终只有 3 个数字,但无论如何我都想要 5 个数字。我做错了什么?

这是我的代码:

        int[] numbers = new int[5];
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("Enter a number: ");
            string c = Console.ReadLine();
            int value;
            if (int.TryParse(c, out value))
            {
                numbers[i] = value;
            }
            else
            {
                Console.WriteLine("You did not enter a number'n");
            }
        }
        for (int i = 0; i < numbers.Length; i++ )
        {
            Console.Write(numbers[i] + " ");
        }

如何根据条件向数组添加元素

当用户输入错误/无数字时,您可以将增量计数减少 1。

另请注意,您当前的代码仅读取 4(而不是问题描述所说的 5)数字的输入。

int[] numbers = new int[4];
for (int i = 0; i < 4; i++)
{
    Console.WriteLine("Enter a number: ");
    string c = Console.ReadLine();
    int value;
    if (int.TryParse(c, out value))
    {
        numbers[i] = value;
    }
    else
    {
        i--;
        Console.WriteLine("You did not enter a number'n");
    }
}
for (int i = 0; i < numbers.Length; i++ )
{
    Console.Write(numbers[i] + " ");
}

尝试使用do-while

 int[] numbers = new int[4];

    int i = 0;
    do
    {
       Console.WriteLine("Enter a number: ");
         string c = Console.ReadLine();
            int value;
            if (int.TryParse(c, out value))
            {
                numbers[i] = value;
                i++;
            }
         else
            {
                Console.WriteLine("You did not enter a number'n");
            }
    } while (i < 5);
    Console.WriteLine("'nYour entered numbers are'n");
         for (int j = 0; j < numbers.Length; j++ )
        {
            Console.Write(numbers[j] + " ");
        }

你可以在这里使用 while 循环。请参阅以下代码

     int[] numbers = new int[5];
     int i = 0;
     while (i < 5) {
        Console.WriteLine ("Enter a number: ");
        string c = Console.ReadLine ();
        int value;
        if (int.TryParse (c, out value)) {
           numbers[i] = value;
           i++;
        } else {
           Console.WriteLine ("You did not enter a number'n");
        }
     }
     for (i = 0; i < numbers.Length; i++) {
        Console.Write (numbers[i] + " ");
     }

您可以使用while循环减少代码。此外,最好将最后一个for循环更改为foreach

int[] numbers = new int[5];
int i = 0;
while (i < 5)
{
    Console.WriteLine("Enter a number: ");
    string c = Console.ReadLine();
    int value;
    if (!int.TryParse(c, out value)) continue;
    numbers[i] = value;
    i++;
}
foreach (int t in numbers)
    Console.Write(t + " ");