我有以下简单的 Java 语句:
public static void main(String[] args)
{
int[] grades = {102, 105, 98, 105};
Sorts.selectionSort(grades);
for (int grade : grades) {
// {
System.out.println(grade);
try {
System.out.print(grades[grade] + " ");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Error!");
}
}
我得到以下输出:
102
Error!
105
Error!
98
Error!
105
Error!
为什么循环会迭代到数组中没有的值?我很困惑。
谢谢。
最佳答案
int Grade
是数组中每个元素的值,而不是索引。
如果您想获取 int[] Grades = {102, 105, 98, 105};
的每个元素,您应该使用常规 for
循环,如下所示:
for (int i = 0; i < grades.length; i++) {
System.out.println(grades[i]);
}
这将起作用,因为数组中每个元素的索引范围为 0 到 3。
看看enhanced for loop
文档。
关于java - 为什么这个 Java foreach 循环会抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725362/