用循环填充数组

问题描述 投票:0回答:3

嗨,我一直在尝试使用for循环打印出7、6、5、4、3、2、1

int[] numbers = new int[7];

for (int i = 7; i < numbers.Length; i--)
        {
            numbers[i] = i - 1;
            Console.WriteLine(numbers[i]);
        }

也试图用一眼的表情来打印出1、2、3、4、5、6、7

int[] numbers2 = new int[7];
int j = 1;

while (j > numbers2.Length)
        {
            Console.WriteLine(array[j]);
            j++;
        }

有人可以指出正确的方向?

c# arrays for-loop while-loop
3个回答
0
投票

尝试一下:

int[] numbers = new int[7];

for (int i = 7; i > 0; i--)
{
    numbers[i - 1] = i;
    Console.WriteLine(numbers[i - 1]);
}

因为您要进行down,所以还必须修改循环条件以在我变得太低时停止,在这种情况下为0。您还可以在反向范围内进行迭代:

var range = Enumerable.Range(1, 7).Reverse();
foreach (var number in range)
{
    Console.WriteLine(number);
}

或使用while:

var currentNumber = 7;
while (currentNumber > 0)
{
    Console.WriteLine(currentNumber--);
}

0
投票

如果for循环下降并且循环计数器在每次迭代时递减,则应将其限制为i >= 0i > 0。由于数组索引是从0开始的,所以最后一个索引将是6,而不是7

int[] numbers = new int[7];

for (int i = 6; i >= 0; i--)
{
    numbers[i] = i + 1;
    Console.WriteLine(numbers[i]);
}

如果可以定位C#8,则可以使用the index from end operator ^填充数组

^

0
投票

当然,通过使用断点并逐步跟踪代码,您可以轻松地找到行为不当的部分。这样,您可以学习新事物,而不仅仅是解决问题。我认为以下链接将为您提供帮助:for (int i = 1; i <= numbers.Length; i++) { numbers[^i] = i; }

© www.soinside.com 2019 - 2024. All rights reserved.