请解释一下这段代码的逐步输出:
public class My {
public static void main(String[] args) {
int[] a = {1,2,3,4,1};
for (int n : a) {
a[n] = 0;
}
for (int n : a) {
System.out.println(n);
}
}
}
我知道这是一个增强的循环。但是不明白它如何与a[n]=0
一起使用
为什么这段代码会输出00301?
答案 0 :(得分:3)
您可以通过添加println
语句来调试它:
for (int n : a) {
System.out.println("Changing element " + n + " of array from " + a[n] + " to 0");
a[n] = 0;
}
这个输出是:
Changing element 1 of array from 2 to 0
Changing element 0 of array from 1 to 0
Changing element 3 of array from 4 to 0
Changing element 0 of array from 0 to 0
Changing element 1 of array from 0 to 0
答案 1 :(得分:0)
此代码实际上替换了第n个索引的值,其中n是遍历时分配给n的值
答案 2 :(得分:0)
在迭代数组a []时,它会更改数组的值。这就是a[2] and a[4]
永远不会改变的原因。