使用增强的for-java循环迭代多维数组

使用增强的for-java循环迭代多维数组,java,multidimensional-array,foreach,Java,Multidimensional Array,Foreach,当使用增强的for循环遍历数组x时,y和z代表什么以及循环是如何工作的。这是我写的代码,它可以工作,但我不明白它为什么工作以及如何工作。如果有人能在显示多维数组时解释for循环的语法,我将不胜感激 // enhanced for loop String[][] x = { {"a", "a^2", "a^3"}, {"1", "1", "1"}, {"2", "4", "8"}, {"3", "9", "27"}, {"4", "16", "64"}

当使用增强的for循环遍历数组x时,y和z代表什么以及循环是如何工作的。这是我写的代码,它可以工作,但我不明白它为什么工作以及如何工作。如果有人能在显示多维数组时解释for循环的语法,我将不胜感激

// 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();

数组上的增强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();
}
for(int i=0;i
表示“对于数组(称为x)中的每个字符串数组(称为y)”

例如,y[0]是
{“a”,“a^2”,“a^3”}

然后类似地,
for(字符串z:y)
对于我们之前定义为y的字符串数组中称为z的每个字符串,表示“y”

因此,y的第一个过程中的z[0]是“a”。然后z[1]是“a^2”,z[2]是“a^3”


这就完成了y的第一个条目的迭代,我们重复下一个条目,等等。

发生的事情是你的第一个
for(String[]y:x)
你遍历x中的每个元素,这些元素恰好是String[],字符串数组,对于每个主题,通过第二个循环对其元素进行迭代(字符串z:y)
,因此y将是: (“a”、“a^2”、“a^3”), ("1", "1", "1"), ("2", "4", "8"), . .
z的值是a,a^2,a^3,1….

你可以从概念上把2D数组看作是数组的数组。1级数组的每个元素都存储对另一个数组的引用,2级数组的每个元素都是实际数据,在本例中是一个“int”。

以下是增强for循环的语法

for(<DataType of array><temporary variable name> : <Array to be iterated>)
{
   System.out.println(variable name);
}

用于(:了解增强型循环是如何工作的。

您是否有可以重定向这些教程类型问题的讲师?我将从基本的for循环开始。如果您能理解本教程:然后转到增强型for循环:,在了解增强型for循环的工作原理后,您应该可以毫无问题地链接到多维数组的概念,具有增强的for.可能的重复
for(<DataType of array><temporary variable name> : <Array to be iterated>)
{
   System.out.println(variable name);
}