foreach在Java中与数组一起使用时导致越界错误
我想使用foreach循环打印数组中的所有元素foreach在Java中与数组一起使用时导致越界错误,java,arrays,foreach,Java,Arrays,Foreach,我想使用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
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,但我不确定
有人能解释一下原因吗?您正在迭代分配给
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
您正在迭代分配给
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
在第一段代码中,您没有打印数组中的所有元素。您将遍历数组中的所有元素,并为每个元素打印数组中与该元素值对应的条目 你想要的是:
int[] array={1,2,3,4,5};
for(int i:array)
System.out.println(i);
在第一段代码中,您没有打印数组中的所有元素。您将遍历数组中的所有元素,并为每个元素打印数组中与该元素值对应的条目 你想要的是:
int[] array={1,2,3,4,5};
for(int i:array)
System.out.println(i);
你确定这正是导致问题的代码吗?@Jean BaptisteYunès
array[i]
的for-each循环就是问题所在。哦,是的!!!我没抓住要点!愚蠢的我…I
迭代值而不是索引…你确定这正是导致问题的代码吗?@Jean BaptisteYunès数组[I]
的for-each循环就是问题所在。哦,是的!!!我没抓住要点!愚蠢的我…I
迭代值而不是索引…谢谢,这就是我要找的。谢谢,这就是我要找的。