java.lang.ArrayIndexOutOfBoundsException是什么意思?

java.lang.ArrayIndexOutOfBoundsException是什么意思?,java,arrays,Java,Arrays,我是java新手,今天我开始研究数组,我迷路了。我试图在数组中放入一些值,但得到了错误java.lang.ArrayIndexOutOfBoundsException 以下是我迄今为止所做的工作 int n=6; int[]A= new int [1]; for(i=0;i<n;i++){ A[i]=keyboard.nextInt(); } int n=6; int[]A=新的int[1]; 对于(i=0;i,它

我是java新手,今天我开始研究数组,我迷路了。我试图在数组中放入一些值,但得到了错误
java.lang.ArrayIndexOutOfBoundsException

以下是我迄今为止所做的工作

      int n=6; 
      int[]A= new int [1];

      for(i=0;i<n;i++){
          A[i]=keyboard.nextInt();
      } 
int n=6;
int[]A=新的int[1];

对于(i=0;i,它的意思是它所说的。您正在尝试访问已定义数组边界之外的元素

你的阵列 新int[1]; 将只包含一个元素。
我想你的意思是int[n];

它的意思与它所说的差不多。你试图访问一个超出你定义的数组边界的元素

你的阵列 新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();

   }
int n=6;
int[]A=新的int[n];

对于(i=0;i您试图访问您无权访问的内存。您的数组声明为大小为1,设置为n=6。因此,遍历数组a,您试图访问尚未声明的数组的5个虚拟位置。因此,数组索引超出范围

您可能想要的是:

  int n=6;

      int[]A= new int [n];

    for(i=0;i<n;i++)
   {
      A[i]=keyboard.nextInt();

   }
int n=6;
int[]A=新的int[n];

对于(i=0;i而言,问题在于数组的大小为1。您可以在数组声明的括号之间设置数组的大小

for循环执行6次。可以将数组大小更改为6

int n=6

  int[]A= new int [6];

for(i=0;i<=n;i++)
   {
      A[i]=keyboard.nextInt();

   } 
int[]A=新的int[6];

对于(i=0;i而言,问题在于数组的大小为1。您可以在数组声明的括号之间设置数组的大小

for循环执行6次。可以将数组大小更改为6

int n=6

  int[]A= new int [6];

for(i=0;i<=n;i++)
   {
      A[i]=keyboard.nextInt();

   } 
int[]A=新的int[6];

对于(i=0;i,这里您已将数组的大小声明为1,但要遍历数组6次

在for循环中,您应该编写

for (int i=0; i< A.length; i++ ){

  A[i]=keyboard.nextInt();
}
for(int i=0;i

所以在本例中,循环将只遍历一次。

这里您已将数组的大小声明为1,但将遍历数组6次

在for循环中,您应该编写

for (int i=0; i< A.length; i++ ){

  A[i]=keyboard.nextInt();
}
for(int i=0;i

因此,在这种情况下,您的循环将只被遍历一次。

        int []array=new int[3];
如果您尝试访问数组[4],它将为您提供ArrayIndexOutOfBoundsException。 底线是,每当您访问一个超出其边界的数组时,您都会得到这个异常


:D

java.lang.ArrayIndexOutOfBoundsException表示您试图访问一个不存在的数组索引。例如,您有一个数组

        int []array=new int[3];
如果您尝试访问数组[4],它将为您提供ArrayIndexOutOfBoundsException。 底线是,每当您访问一个超出其边界的数组时,您都会得到这个异常


:D

每当您遇到错误时,始终首先检查其API。例如,ArrayIndexOutOfBoundException的文档


在您的代码中,您正在创建一个大小为1的数组,方法是说
newint[1]
,现在当您迭代数组并检查
A[1]的值时
,您正在尝试访问数组的第二个元素,该元素甚至不存在,因为数组索引从0开始。因此,您正在访问的索引超出了范围

每当您遇到错误时,始终首先检查其API。例如,ArrayIndexOutOfBoundException的文档


在您的代码中,您正在创建一个大小为1的数组,方法是说
newint[1]
,现在当您迭代数组并检查
A[1]的值时
,您正在尝试访问数组的第二个元素,该元素甚至不存在,因为数组索引从0开始。因此,您正在访问的索引超出了范围

java.lang.ArrayIndexOutOfBoundsException意味着您正在尝试访问不存在的数组索引


问题是数组的大小为1。但是,您将经历六次循环。您可以使n等于1,也可以增大数组的大小。


问题是您的数组大小为1。但是,您将经历六次循环。您可以使n等于1,也可以增大数组的大小。

这意味着您试图访问
A[1]
,其中数组只有一个索引:0@alfasin,您错了。数组只有[0]@alfasin这就是你在被我更正后编辑的内容。@alfasin,没关系。没什么大不了的。我看到了一些东西并想更正它。仅此而已。这意味着你试图访问数组只有一个索引的
a[1]
:0@alfasin,您错了。数组只有[0]@阿尔法辛,这就是你在被我更正后编辑的内容。@阿尔法辛,没关系。没什么大不了的。我看到了一些东西并想更正它。仅此而已。