对于每个循环异常

Som*_*Guy 1 java arrays foreach

我在第二个打印行中遇到异常.

int num[] = {50,20,45,82,25,63};
System.out.print("Given number : ");
for(int d:num){
System.out.print("  " + num[d]);
}
Run Code Online (Sandbox Code Playgroud)

控制台输出是

Given number : Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 50
Run Code Online (Sandbox Code Playgroud)

为什么不采用所有数组元素而只有50?

Sta*_*arx 6

for(int d:num)循环中,每个项目都表示为dnotnum[d]

所以,这是应该如何做的.

for(int d:num){
    System.out.print("  " + d);
}
Run Code Online (Sandbox Code Playgroud)

简单的干运行会告诉你哪里出错了.

对于第一个循环,您的语句将归结为num[50]在任何地方都无法使用,因此您将获得异常.


但是,如果您尝试使用索引,那么下面的一个简单技巧就可以解决问题

int index = 0;
for(int d:num){
    System.out.print("  " + num[index++]);
}
Run Code Online (Sandbox Code Playgroud)

但老实说,我认为这不是问题的正确解决方案.