在二维数组上使用 foreach 循环时会发生什么
What happens when you use foreach loop on a 2D array
int[][] winningPositions =
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8}, {2,4,6}};
for (int[] winningPosition : winningPositions)
System.out.println(winningPosition[2]);
这打印
2个
5个
8个
6个
7
8个
8个
6
我不明白为什么,这太随机了,foreach 循环试图做什么?为什么不打印第三组数组 {6,7,8} ?
这是如何工作的?
int[][] winningPositions =
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8},
{2,4,6}};
for (int[] winningPosition : winningPositions){
for(int i = 0; i < winningPosition.length; i ++){
System.out.println(winningPosition[i]);
}
}
图像有一个抽屉,每个抽屉里有 1 张便条。纸币顶部有 x,中间有 y,底部有 z。通过循环,您可以打开每个抽屉并查看每个音符的第三行。仅打印 z.
每次打开抽屉都需要查看所有线条。这样你就可以为每行的笔记打印内容。 winningPosition.length
是那张纸条上有多少行。
查找嵌套循环。
您的 for each 循环实际上是打印二维数组 winningPositions 中每个 winningPosition 数组的第三个元素:
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8}, {2,4,6}}
这条语句winningPosition[2]
将获取二维数组winningPositions
.
中内部数组的每个第三个元素
您还可以分解每个循环以更好地理解它:
在每次循环的第一次迭代中,它将获得 winningPositions 的第一个元素:
{0,1,2}
那么这条语句winningPosition[2]
将得到这个子数组中的第三个元素,即2
在每次循环的第二次迭代中,它将获得 winningPositions 的第二个元素:
{3,4,5}
之后 winningPosition[2]
将得到此子数组中的第三个元素,即 5
依此类推。
这很像在传统的 for 循环中得到 winningPositions[1][2]
。
更新:
why is it not printing the third set of arrays {6,7,8} ?
我从你的问题中了解到你想要打印二维数组 winningPositions 的第三个子数组。
要打印它,每个循环都不需要任何内容
你可以简单地使用方法Arrays.toString
来打印它:
System.out.println(Arrays.toString(winningPositions[2]));
输出:
[6, 7, 8]
您的 for 循环遍历每个数组,并在完成后打印内存中的整数。自从您输入:
for (int[] winningPosition : winningPositions)
您要求从 winningPositions 中取出 int[]。因此,在将 3 个整数放入这样的数组后,它在他刚刚配置的数组的内存中有最后一个整数。这就是为什么它只打印出数组的最后一个整数。
如果您想打印出所有原始的 winningPositions,请执行:
for (int winningPosition : winningPosition)
如果您想打印出原始 winningPosition 中每个数组的特定数字,请执行:
for (int[] winningPosition : winningPosition)
System.out.println(winningPosition[x];
X 是您要打印的整数的索引点。 (数组的第一个索引号始终为 0。)
你也可以用我说的最后一个方法继续一个你本来想做的选区。 (例如,使用另一个 for 循环遍历您在上一个 for 循环中创建的 int[] winningPosition。)
希望对您有所帮助!
我正在提供我目前正在构建的类似的东西....这是打印所有数字和单独的数组,换行和数字用 [],玩一下代码,你将能够打印什么你喜欢...
public class ArrayFinal {
public static void main(String[] args) {
System.out.println("Array\t Nummbers");
int Array[][] = { { 2, 43, 23, 43, 23, 43 }, { 3, 5, 6, 7, 6, 5 }, { 34, 42, 44, 24, 6, 7 },
{ 2, 34, 54, 332, 23, 43 }, { 2, 43, 45, 54, 34, 34 }, { 2, 34, 54, 54, 34, 23 } };
display(Array);
}
// methodos gia na dimiourgisoume to rows kai ta columns
public static void display(int x[][]) {
for (int row = 0; row < x.length; row++) {
StringBuilder str_buf = new StringBuilder();
str_buf.append((row + 1) + ".");
for (int column = 0; column < x[row].length; column++) {
str_buf.append("\t" + "[" + x[row][column] + "]");// tiponi ta noumera pou vriskonte mesa stin klirosi
}
System.out.println(str_buf.toString());// tiponi to noumero tis klirosis
}
}
}
结果:
1. [2] [43] [23] [43] [23] [43]
2. [3] [5] [6] [7] [6] [5]
3. [34] [42] [44] [24] [6] [7]
4. [2] [34] [54] [332] [23] [43]
5. [2] [43] [45] [54] [34] [34]
6. [2] [34] [54] [54] [34] [23]
我是 java 中的新成员,并且由于此 post 处于活动状态,如果有人可以向我展示从这些数组中显示 Occurances 的方法,那就太好了,我几乎尝试了所有方法....
int[][] winningPositions =
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8}, {2,4,6}};
for (int[] winningPosition : winningPositions)
System.out.println(winningPosition[2]);
这打印 2个 5个 8个 6个 7 8个 8个 6
我不明白为什么,这太随机了,foreach 循环试图做什么?为什么不打印第三组数组 {6,7,8} ? 这是如何工作的?
int[][] winningPositions =
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8},
{2,4,6}};
for (int[] winningPosition : winningPositions){
for(int i = 0; i < winningPosition.length; i ++){
System.out.println(winningPosition[i]);
}
}
图像有一个抽屉,每个抽屉里有 1 张便条。纸币顶部有 x,中间有 y,底部有 z。通过循环,您可以打开每个抽屉并查看每个音符的第三行。仅打印 z.
每次打开抽屉都需要查看所有线条。这样你就可以为每行的笔记打印内容。 winningPosition.length
是那张纸条上有多少行。
查找嵌套循环。
您的 for each 循环实际上是打印二维数组 winningPositions 中每个 winningPosition 数组的第三个元素:
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8}, {2,4,6}}
这条语句winningPosition[2]
将获取二维数组winningPositions
.
您还可以分解每个循环以更好地理解它:
在每次循环的第一次迭代中,它将获得 winningPositions 的第一个元素:
{0,1,2}
那么这条语句winningPosition[2]
将得到这个子数组中的第三个元素,即2
在每次循环的第二次迭代中,它将获得 winningPositions 的第二个元素:
{3,4,5}
之后 winningPosition[2]
将得到此子数组中的第三个元素,即 5
依此类推。
这很像在传统的 for 循环中得到 winningPositions[1][2]
。
更新:
why is it not printing the third set of arrays {6,7,8} ?
我从你的问题中了解到你想要打印二维数组 winningPositions 的第三个子数组。
要打印它,每个循环都不需要任何内容
你可以简单地使用方法Arrays.toString
来打印它:
System.out.println(Arrays.toString(winningPositions[2]));
输出:
[6, 7, 8]
您的 for 循环遍历每个数组,并在完成后打印内存中的整数。自从您输入:
for (int[] winningPosition : winningPositions)
您要求从 winningPositions 中取出 int[]。因此,在将 3 个整数放入这样的数组后,它在他刚刚配置的数组的内存中有最后一个整数。这就是为什么它只打印出数组的最后一个整数。 如果您想打印出所有原始的 winningPositions,请执行:
for (int winningPosition : winningPosition)
如果您想打印出原始 winningPosition 中每个数组的特定数字,请执行:
for (int[] winningPosition : winningPosition)
System.out.println(winningPosition[x];
X 是您要打印的整数的索引点。 (数组的第一个索引号始终为 0。) 你也可以用我说的最后一个方法继续一个你本来想做的选区。 (例如,使用另一个 for 循环遍历您在上一个 for 循环中创建的 int[] winningPosition。)
希望对您有所帮助!
我正在提供我目前正在构建的类似的东西....这是打印所有数字和单独的数组,换行和数字用 [],玩一下代码,你将能够打印什么你喜欢...
public class ArrayFinal {
public static void main(String[] args) {
System.out.println("Array\t Nummbers");
int Array[][] = { { 2, 43, 23, 43, 23, 43 }, { 3, 5, 6, 7, 6, 5 }, { 34, 42, 44, 24, 6, 7 },
{ 2, 34, 54, 332, 23, 43 }, { 2, 43, 45, 54, 34, 34 }, { 2, 34, 54, 54, 34, 23 } };
display(Array);
}
// methodos gia na dimiourgisoume to rows kai ta columns
public static void display(int x[][]) {
for (int row = 0; row < x.length; row++) {
StringBuilder str_buf = new StringBuilder();
str_buf.append((row + 1) + ".");
for (int column = 0; column < x[row].length; column++) {
str_buf.append("\t" + "[" + x[row][column] + "]");// tiponi ta noumera pou vriskonte mesa stin klirosi
}
System.out.println(str_buf.toString());// tiponi to noumero tis klirosis
}
}
}
结果:
1. [2] [43] [23] [43] [23] [43]
2. [3] [5] [6] [7] [6] [5]
3. [34] [42] [44] [24] [6] [7]
4. [2] [34] [54] [332] [23] [43]
5. [2] [43] [45] [54] [34] [34]
6. [2] [34] [54] [54] [34] [23]
我是 java 中的新成员,并且由于此 post 处于活动状态,如果有人可以向我展示从这些数组中显示 Occurances 的方法,那就太好了,我几乎尝试了所有方法....