2014-09-22 88 views
0

當使用增強for循環遍歷數組x時,y和z表示什麼以及循環如何工作。這是我寫的代碼,它的工作原理,但我不明白爲什麼以及如何工作。如果有人可以在顯示多維數組時解釋for循環的語法,我將不勝感激。使用增強for循環迭代多維數組java

// enhanced for loop 
String[][] x = 
{ 
    {"a", "a^2", "a^3"}, 
    {"1", "1", "1"}, 
    {"2", "4", "8"}, 
    {"3", "9", "27"}, 
    {"4", "16", "64"}  
}; 

for (String[] y: x) 
{ 
    for (String z: y) 
    { 
     System.out.print(z + "\t"); 
    } 
    System.out.println(); 
+0

你有一位教練,你可以重定向這些教程類型的問題嗎? – MarsAtomic 2014-09-22 20:01:51

+1

我會從基本的循環開始。如果您可以理解本教程,請執行以下操作:http://www.homeandlearn.co.uk/java/multi-dimensional_arrays.html然後轉到增強for循環:https://blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with ,在瞭解增強型for循環的工作原理之後,您應該沒有問題將多維數組的概念與增強型for。 – scrappedcola 2014-09-22 20:18:17

+0

可能的重複[每個循環的Java如何工作?](http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work) – 2014-09-22 20:18:54

回答

1

for循環的增強一個數組相當於遍歷數組的索引以規則for循環:

for (int i=0; i<x.length; i++) 
{ 
    String[] y = x[i]; 
    for (int j=0; j<y.length; j++) 
    { 
     String z = y[j]; 
     System.out.print(z + "\t"); 
    } 
    System.out.println(); 
} 

當你迭代在兩個維陣列的每個元素外部數組本身就是一個數組。

1
for (String[] y: x) 

Means'爲數組數組(被調用的x)'中的每個String數組(稱爲y)。

所以Y [0],例如是{"a", "a^2", "a^3"}

然後類似地,for (String z: y) 裝置「的稱爲z中的字符串陣列中的每個字符串我們先前定義爲y。

因此y的第一遍中的z [0]是「a」。那麼z [1]是「a^2」而z [2]是「a^3」。

這樣就完成y的第一個條目的迭代,我們重複與下一個,等等,等等

0

什麼發生的事你先for (String[] y: x)您在x經歷每一個元素,那就是你的恰好是String []類型的字符串數組,並且對於每個主題,您在第二個循環for (String z: y)上遍歷其元素,因此y將是: (「a」,「a^2」,「a (「2」,「4」,「8」), (「1」,「1」,「1」), 。 和z的值將是a,a^2,a^3,1 ....

0

您可以從概念上將2D數組視爲一個數組數組。 1級數組中的每個元素存儲對另一個數組的引用,並且2級數組中的每個元素都是實際數據,在本例中爲'int'。