簡體   English   中英

Java增強循環

[英]Java enhanced 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?

您可以通過添加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

該代碼實際上是在替換第n個索引的值,其中n是遍歷時分配給n的值

遍歷數組a []時,它將更改數組的值。 這就是為什么a[2] and a[4]永不更改的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM