C# 数组不接受 "size"
C# array wont accept "size"
又是菜鸟。今天的问题是:
int[] forArray = new int[10];
for (int k = 1; k <= 10; k++)
{
forArray[k] = k * 2;
Console.WriteLine(k); // test
}
for (int k = 0; k < 10; k++)
{
Console.WriteLine(forArray[k]);
}
它给出了一个 "out of bounds" 错误。我希望我的程序输出 2 到 20 之间的自然数。而是给出一个错误。当我将第一个 for 循环条件更改为 k <= 9 它运行但给了我 0 而不是 20。它喜欢它 returns 最后一个值为 0 并且 "re-positions" 它到 "front" .很抱歉这个非常简单的问题。
在引用元素时,数组是从零开始的。因此,对于数组中的 10 个项目(这是您分配的),它是 forArray[0]
到 forArray[9]
。您的代码尝试从 forArray[1]
循环到 forArray[10]
,并且没有索引位置 10(当您最终越界时)。
你的第二个 for 循环没问题,因为它从 0 到 9。
注意:由于您的循环需要从零开始,如果您希望它以 2
.[=15 开头,则需要调整计算填充到索引位置的数字的方式=]
将您的条件更改为 k
forArray[k - 1] = k * 2;
调试您的代码并逐步执行,正如您在下面看到的,您正在尝试分配给不存在的索引 [10]。
{
int[] forArray = new int[10];
for (int k = 1; k < 10; k++) // k < 10 instead of k <= 10
{
forArray[k] = k * 2;
Console.WriteLine(k); // test
//forArray[0] = SKIPPED
//forArray[1] = 2
//forArray[2] = 4
//forArray[3] = 6
//forArray[4] = 8
//forArray[5] = 10
//forArray[6] = 12
//forArray[7] = 14
//forArray[8] = 16
//forArray[9] = 18
//forArray[10] INVALID
}
for (int k = 0; k < 10; k++)
{
Console.WriteLine(forArray[k]);
}
}
又是菜鸟。今天的问题是:
int[] forArray = new int[10];
for (int k = 1; k <= 10; k++)
{
forArray[k] = k * 2;
Console.WriteLine(k); // test
}
for (int k = 0; k < 10; k++)
{
Console.WriteLine(forArray[k]);
}
它给出了一个 "out of bounds" 错误。我希望我的程序输出 2 到 20 之间的自然数。而是给出一个错误。当我将第一个 for 循环条件更改为 k <= 9 它运行但给了我 0 而不是 20。它喜欢它 returns 最后一个值为 0 并且 "re-positions" 它到 "front" .很抱歉这个非常简单的问题。
在引用元素时,数组是从零开始的。因此,对于数组中的 10 个项目(这是您分配的),它是 forArray[0]
到 forArray[9]
。您的代码尝试从 forArray[1]
循环到 forArray[10]
,并且没有索引位置 10(当您最终越界时)。
你的第二个 for 循环没问题,因为它从 0 到 9。
注意:由于您的循环需要从零开始,如果您希望它以 2
.[=15 开头,则需要调整计算填充到索引位置的数字的方式=]
将您的条件更改为 k
forArray[k - 1] = k * 2;
调试您的代码并逐步执行,正如您在下面看到的,您正在尝试分配给不存在的索引 [10]。
{
int[] forArray = new int[10];
for (int k = 1; k < 10; k++) // k < 10 instead of k <= 10
{
forArray[k] = k * 2;
Console.WriteLine(k); // test
//forArray[0] = SKIPPED
//forArray[1] = 2
//forArray[2] = 4
//forArray[3] = 6
//forArray[4] = 8
//forArray[5] = 10
//forArray[6] = 12
//forArray[7] = 14
//forArray[8] = 16
//forArray[9] = 18
//forArray[10] INVALID
}
for (int k = 0; k < 10; k++)
{
Console.WriteLine(forArray[k]);
}
}