Java 在二维数组上使用foreach循环时会发生什么
这张照片 2. 5. 8. 6. 7. 8. 8. 六, 我不明白为什么,这是如此随机,foreach循环试图做什么?为什么不打印第三组数组{6,7,8}? 这是如何工作的?Java 在二维数组上使用foreach循环时会发生什么,java,arrays,foreach,2d,Java,Arrays,Foreach,2d,这张照片 2. 5. 8. 6. 7. 8. 8. 六, 我不明白为什么,这是如此随机,foreach循环试图做什么?为什么不打印第三组数组{6,7,8}? 这是如何工作的?int[]winningPositions= 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 : winn
int[]winningPositions=
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]);
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8},
{2,4,6}};
对于(int[]winningPosition:winningPositions){
对于(int i=0;i
有一个抽屉的图像,每个抽屉里有一张钞票。音符上有X,中间有Y,底部有Z。你打开每一个抽屉,看看每一张纸条的第三行。只打印z
每次你打开抽屉,你都需要看所有的线。这样,您就可以为注释的每一行打印内容<代码>winningPosition.length是该音符上有多少行
查找嵌套循环。您的for each循环实际上是在2D数组winningPositions内打印每个winningPosition数组的第三个元素:
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]);
}
}
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8}, {2,4,6}}
{0,1,2}
此语句winningPositions[2]
将获取2D数组winningPositions
中内部数组的每三个元素
您还可以对每个循环进行分解,以便更好地理解它:
在for each循环的第一次迭代中,它将获得winningPositions的第一个元素:
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]);
}
}
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8}, {2,4,6}}
{0,1,2}
然后此语句winningPosition[2]
将获得此子数组中的第三个元素,即2
在for each循环的第二次迭代中,它将获得winningPositions的第二个元素:
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]);
}
}
{{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7}, {2,5,8}, {0,4,8}, {2,4,6}}
{0,1,2}
之后,winningPosition[2]
将获得子数组中的第三个元素,即5
,依此类推
这很像在传统的for循环中获得赢得位置[1][2]
更新:
为什么不打印第三组数组{6,7,8}
我从您的问题中了解到,您希望打印2D数组winningPositions的第三个子数组
要打印它,每个循环不需要任何内容
您只需使用methodArrays.toString
打印即可:
{3,4,5}
输出:
System.out.println(Arrays.toString(winningPositions[2]));
for循环将遍历每个数组,并在完成后打印出内存中的整数。自从您键入:
[6, 7, 8]
您要求从winningPositions中获取int[]。在它将3个整数放入这样一个数组之后,它的内存中就有了他刚才配置的数组的最后一个整数。这就是为什么它只打印出数组的最后一个整数。
如果要打印出所有原始获胜位置,请执行以下操作:
for (int[] winningPosition : winningPositions)
如果要在原始winningPosition中打印每个阵列的特定编号,请执行以下操作:
for (int winningPosition : winningPosition)
X是要打印的整数的索引点。(数组的第一个索引号始终为0。)
您还可以使用我说的最后一种方法继续您最初想要进行的选择。(例如,使用另一个for循环遍历在上一个for循环中创建的int[]winningPosition。)
希望这对你有帮助 我正在提供我目前正在建造的类似东西。。。。这是打印所有数字和单独的数组与新行和数字与[],发挥一点的代码,你将能够打印你喜欢的
for (int[] winningPosition : winningPosition)
System.out.println(winningPosition[x];
我是java新手,由于这篇文章很活跃,如果有人能告诉我如何显示这些数组中的事件,那就太好了,我几乎尝试了所有的方法 你到底想打印什么?这里没有b[2],因为b的大小是2。您可以访问b[0]或b[1]。b[2]会给你一个例外。可能重复的只是记住Java中没有真正的2D数组-它是一个数组,每个位置都包含数组。因此,for each返回存储在外部数组中的每个数组<代码>winningPositions[2]应该是{6,7,8},但是代码得到的是每个内部数组的位置[2]处的值。好的,我现在知道了索引的内容,但是,看看编辑后的代码,每个{x,y,z}取第三个元素。所以你只在那里打印z