我想使用foreach循环打印数组中的所有元素
int[] array={1,2,3,4,5};
for(int i:array)
System.out.println(array[i]);
编译器给了我这个错误/警告
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:5
但是当我打印别的东西时
int[] array={1,2,3,4,5};
for(int i:array)
System.out.println("Print something");
它写了“打印东西”五次并且没有发出警告/错误。
我认为它必须做一些事情,数组中的第一个元素有索引0,但我不确定。
有人可以解释原因吗?
答案 0 :(得分:2)
您正在迭代分配给i
的数组内容,因此代码转换为
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);
System.out.println(array[5]); // ArrayIndexOutOfBoundsException
答案 1 :(得分:0)
在第一块代码中,您不打印数组中的所有元素。您将遍历数组中的所有元素,并且对于要打印数组中与该元素值相对应的条目的每个元素。
你想要的是这个:
int[] array={1,2,3,4,5};
for(int i:array)
System.out.println(i);