Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
foreach在Java中与数组一起使用时导致越界错误_Java_Arrays_Foreach - Fatal编程技术网

foreach在Java中与数组一起使用时导致越界错误

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

我想使用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,但我不确定


有人能解释一下原因吗?

您正在迭代分配给
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
迭代值而不是索引…谢谢,这就是我要找的。谢谢,这就是我要找的。