我是 java 新手,今天我开始研究数组,但我迷路了。我正在尝试将一些值放入数组中,但出现错误java.lang.ArrayIndexOutOfBoundsException
。
这是我到目前为止所做的。
int n=6;
int[]A= new int [1];
for(i=0;i<n;i++){
A[i]=keyboard.nextInt();
}
java.lang.ArrayIndexOutOfBoundsException means you are trying to access a array index that doesn't exist.
The problem is that your array is of size one.However, you are going through that loop six times. You can either make n equal to one, or increase the size of your array.
问题是你的数组的大小是一。您将数组的大小设置在数组声明的括号之间。
您的 for 循环进行了 6 次。您可以将数组的大小更改为 6。
诠释 n = 6;
int[]A= new int [6];
for(i=0;i<=n;i++)
{
A[i]=keyboard.nextInt();
}
这意味着它所说的那种。您正在尝试访问您定义的数组边界之外的元素。
你的数组 new int [1]; 只会容纳一个元素。我认为你的意思是 int [n];
您正在尝试访问您无权访问的内存。您的数组被声明为大小为 1,并且您正在设置 n = 6。因此,遍历数组 A,您正在尝试访问尚未声明的数组的 5 个假想位置。因此,数组索引超出范围。
你可能想要的是这样的:
int n=6;
int[]A= new int [n];
for(i=0;i<n;i++)
{
A[i]=keyboard.nextInt();
}
在这里,您已将数组的大小声明为 1,但您正在遍历数组 6 次。
在你的 for 循环中你应该写
for (int i=0; i< A.length; i++ ){
A[i]=keyboard.nextInt();
}
所以在这种情况下,你的循环只会遍历一次。
java.lang.ArrayIndexOutOfBoundsException 意味着您正在尝试访问不存在的数组索引。例如,您有一个数组
int []array=new int[3];
如果您尝试访问数组 [4],它将给您 ArrayIndexOutOfBoundsException。最重要的是,每当您访问超出其边界的数组时,您都会收到此异常。
:D
每当你遇到错误时,总是首先检查它的 API。例如这里是 ArrayIndexOutOfBoundException 的文档。
在您的代码中,您通过说创建一个大小为 1 的数组new int [1]
,现在当您遍历数组并检查 的值时A[1]
,您正在尝试访问数组的第二个元素,该元素甚至不存在,因为数组索引以 0 开头. 因此,您正在访问的索引超出范围。