使用增强的for循环时出现异常,而正常的for循环工作正常
我正在学习java
,有人告诉我,您可以for loop
使用enhanced for loop
.
现在我有那个正常的for loop
:
int[] array1 = {3, 6, 9, 12};
for (int i = 0; i < array1.length; i++)
{
System.out.println(array1[i]);
}
而这个返回
3 6 9 12
正如预期的那样。
当我将它用作 a 时enhanced for loop
,就像这样:
for (int i : array1)
{
System.out.println(array1[i]);
}
它返回
12
然后我得到一个例外:
线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException:在 Tutorial.main(Tutorial.java:15) 处,长度为 4 的索引 6 越界
回答
在第二个片段i
中不再是索引而是实际值,因此要打印它你应该简单地写:
for (int i : array1) {
System.out.println(i); // no array1[i]
}