Java增强循环

时间:2018-05-01 10:43:24

标签: java loops for-loop

请解释一下这段代码的逐步输出:

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?

3 个答案:

答案 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]永远不会改变的原因。