2014-03-05 78 views
-2

创建一个名为a的1000个元素的int数组,并给第一个元素赋值1,第二个元素赋值为2,依此类推。为什么我得到错误“java.lang.ArrayIndexOutOfBoundsException”

int[ ] a = new int[1000]; 
    for (int i = 0; i <= a.length; i = i + 1){ 
    a[i] = i; 
    } 

java.lang.ArrayIndexOutOfBoundsException

+3

你已经张贴不会导致一个ArrayIndexOutOfBoundsException的代码。 – aliteralmind

+0

嗯,如果:“try {a [i] = i;} catch(ArrayIndexOutOfBoundsException ex1){System.out.println(”它在index:“+ i);}”? –

+0

呃刚刚编辑。 – user3353820

回答

0

如果你的编辑是什么代码实际上是它只是因为这个检查:

i <= a.length 

这是不好的,因为Java数组索引从0运行到length - 1。这意味着如果你的数组长度是1000,最后一个索引是999

所以它应该是它的方式是编辑前:

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

我如何得到[1000]?如果代码以这种方式我 user3353820

+2

没有[1000]。这是*** 1,001-st ***元素的***指数,它不存在。任何数组中的第一个元素的索引为0. – aliteralmind

+0