我一直遇到错误,我不知道为什么,请告诉我为什么这不起作用。它不仅给我一个错误,而且无法将第二个输入存储到userInput [1]中。
string[] name = new string[4];
double[] bankAccount = new double[4];;
int x;
for (x = 0; x <= name.Length; x++)
{
Console.Write("Please enter first Name and their bank status: ");
string[] userInput = Console.ReadLine().Split();
name[x] = userInput[0];
bankAccount[x] = double.Parse(userInput[1]);
Console.WriteLine(userInput[0], userInput[1]);
}
答案 0 :(得分:2)
您可能知道,数组总是从索引0开始计数元素。
string[] stringArray = { "Hello", "There" };
Console.WriteLine(stringArray.length); // this will output 2, because there are two elements
Console.WriteLine(stringArray[0]); // this will output hello, and [1] would output there
for (x = 0; x <= name.Length; x++)
在您的代码中,您试图遍历数组以查找等于或小于长度的任何值。为什么不起作用?很简单,数组从0开始计数。当您要访问数组中的元素时,需要从在0开始计数第一个元素开始。
还必须注意,虽然访问元素将从0开始计数,但元素数量本身不会从0开始计数。这就是stringArray.length
返回2而stringArray[2]
抛出ArrayOutOfBounds的原因。
要解决此问题,只需将您的<=
条件检查更改为<
。