-4

我对编程完全陌生,Java 将是我的第一语言。我也在使用 eclipse 进行所有的编码。

我一直在研究数组,只是想理解它们。我找到了这个网站:http ://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

我对他们的第一个代码示例做了我自己的变体:

package testArray;

public class TestArray
{
  public static void main(String[] args)
  {
     // Declare a new array of integers
     int[] anArray;

     // Sets the array length to 5
     anArray = new int[5];

     // Setting each array element
     anArray[0] = 1;
     anArray[1] = 2;
     anArray[2] = 3;
     anArray[3] = 4;
     anArray[5] = 5;

     // Displaying the value of each array element
     System.out.println("Element at index 0: " + anArray[0]);
     System.out.println("Element at index 0: " + anArray[1]);
     System.out.println("Element at index 0: " + anArray[2]);
     System.out.println("Element at index 0: " + anArray[3]);
     System.out.println("Element at index 0: " + anArray[4]);

  }
}

我在控制台中不断收到此错误:

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 5 at testArray.TestArray.main(TestArray.java:15)

我也尝试过使用他们网站上的代码,但收到同样的错误。eclipse中没有设置什么吗?

任何帮助深表感谢!

注意:如果有人有一些对初学者有用的网站,请继续将它们添加到您的帖子中!

4

4 回答 4

4

这是问题所在:

 anArray[5] = 5;

将其替换为:

 anArray[4] = 5;

因为你已经定义了一个大小为 5 的数组,所以你只能使用 0-4 之间的索引:

 anArray = new int[5];

如果您尝试访问任何高于 4 的索引,您将遇到 ArrayIndexOutOfBoundException。

于 2013-08-16T01:21:51.343 回答
2
anArray[5] = 5;

实际上访问不存在的第 6 个元素,因为数组是基于 0 的。new int[5]包含 5 个元素,编号为 0、1、2、3 和 4。

所有索引都应小于数组长度。改为使用anArray[4] = 5;

于 2013-08-16T01:22:42.657 回答
0

Java 中的数组是基于 0 的,您创建了一个大小为 5 的数组。

一个数组[5] = 5; 超出了您的数组范围,但看起来可能只是一个错字。

你可能打算把

一个数组[4] = 5;

于 2013-08-16T01:28:46.693 回答
0

也许你想要

package testArray;

public class TestArray
{
  public static void main(String[] args)
  {
     // Declare a new array of integers
     int[] anArray;

     // Sets the array length to 5
     anArray = new int[5];

     // Setting each array element
     anArray[0] = 1;
     anArray[1] = 2;
     anArray[2] = 3;
     anArray[3] = 4;
     anArray[4] = 5;

     // Displaying the value of each array element
     System.out.println("Element at index 0: " + anArray[0]);
     System.out.println("Element at index 1: " + anArray[1]);
     System.out.println("Element at index 2: " + anArray[2]);
     System.out.println("Element at index 3: " + anArray[3]);
     System.out.println("Element at index 4: " + anArray[4]);

  }
}
于 2013-08-16T01:37:58.470 回答