簡體   English   中英

帶有嵌套循環的Java打印數組

[英]Java printing array with nested loop

我對此for循環有誤解。 有人可以澄清一下嗎?

String[][] artikelTabelle;

    artikelTabelle = new String[2][2]; 

    artikelTabelle[0][0] = "Cow";
    artikelTabelle[0][1] = "Sheep";
    artikelTabelle[1][0] = "Dog";
    artikelTabelle[1][1] = "Lion";


    for(int i = 0; i < artikelTabelle.length; i++){ 
        for(int j = 0; j < artikelTabelle[0].length; j++){ 
            System.out.println(artikelTabelle[i][j]);
        }
    }

首先,i和j為0。因此,將打印數組[0] [0](Cow)。 但是在第二次迭代中,由於i ++和j ++,i和j都不都是1嗎? 意思是應該印刷獅子? 我在這里誤解了什么? 而且由於artikelTabelle [0] .length具有長度2-為什么用數字2替換它會是錯誤的?

您有兩個循環,一個外部循環,另一個嵌套在外部循環內部的內部循環。

這意味着對於外循環的每次迭代(在每次i遞增之前),將執行整個內循環(即ji遞增之前從0變為artikelTabelle[0].length )。

因此,先artikelTabelle[0][0] ,然后打印artikelTabelle[0][1] (而不artikelTabelle[1][1] )。 artikelTabelle[1][1]僅在外循環的第二次迭代中打印。

至於是否使用2代替artikelTabelle[0].length ,后者會更安全,因為如果以后更改數組的尺寸,則不必更改硬編碼2

artikelTabelle [0] .length的確為2。

但是,您誤讀了循環。 它是這樣的:

開始時,i為0,j為0。打印出artikelTabelle [0] [0]。 現在,我們仍處於第二個for循環中。 我們的終止條件尚未滿足。 所以我仍然是0,我們將j遞增到1。現在我們打印出artikelTabelle [0] [1]。 由於現在滿足條件以終止第二個for循環,因此我們恢復了第一個循環。 我增加到1,我們重復這個過程。 我們先打印artikelTabelle [1] [0],然后打印artikelTabelle [1] [1]。

希望我能夠提供幫助!

外層的for循環將執行內部的內容達到指定的次數。

因此,內部代碼(這里也是for循環)將被多次執行。

變量j的作用域是外部循環並在外部循環中初始化,這意味着當外部循環第二次啟動時,先前的變量不再存在。

在您的代碼中, artikelTabelle[0].length = 2artikelTabelle.length = 2因此對於兩次循環loopind,外部i循環要比內部j循環增加1,而內部j則增加兩次:

i = 0 => j = 0,j = 1; i = 1 => j = 0,j = 1;

for(int i = 0; i < artikelTabelle.length; i++){ 
        for(int j = 0; j < artikelTabelle[0].length; j++){ 
            System.out.println(artikelTabelle[i][j]);
        }
    }

暫無
暫無

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

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