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 五 8 6 7 8 8 6
我不明白为什么,这是如此随机,foreach循环试图做什么?为什么不打印第三组数组{6,7,8}? 这是怎么回事?
答案 0 :(得分:1)
你的每个循环实际上是在2D数组winsPositions中打印每个winnerPosition数组的第三个元素:
{{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]
将获取2D数组winningPositions
中内部数组的每个第三个元素。
你也可以分解每个循环来理解它:
在每个循环的第一次迭代中,它将获得winsPositions的第一个元素:
{0,1,2}
然后此语句winningPosition[2]
将获得此子数组中的第三个元素2
在每个循环的第二次迭代中,它将获得winsPositions的第二个元素:
{3,4,5}
之后winningPosition[2]
将获得此子数组中的第三个元素5
,依此类推。
这就像在传统的for循环中获取winningPositions[1][2]
一样。
<强>更新强>:
为什么不打印第三组数组{6,7,8}?
我从你的问题中了解到你想要打印2D数组winsPositions的第三个子数组。
要打印它,每个循环都不需要任何
您只需使用方法Arrays.toString
进行打印即可:
System.out.println(Arrays.toString(winningPositions[2]));
输出:
[6, 7, 8]
答案 1 :(得分:0)
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个音符。音符在顶部,中间y和底部z上有x。使用您的循环打开每个抽屉并查看每个音符的第三行。仅打印z。
每次打开抽屉时,都需要查看所有线条。这样你就可以为笔记的每一行打印内容。 winningPosition.length
是该笔记上有多少行。
查找嵌套循环。
答案 2 :(得分:0)
你的for循环是通过每个数组进行的,并在它完成它的内存中的整数后打印出来。因为你输入了:
for (int[] winningPosition : winningPositions)
你要求从winsPositions中获取int []。因此,在将3个整数放入这样的数组之后,它在其刚刚配置的数组的内存中有最后一个整数。这就是为什么它只打印出数组的最后一个整数。 如果你想打印出所有原始的winsPositions,请执行:
for (int winningPosition : winningPosition)
如果您想在原始的winsPosition中打印出每个数组的特定数量,请执行以下操作:
for (int[] winningPosition : winningPosition)
System.out.println(winningPosition[x];
X是您要打印出的整数的索引点。 (数组的第一个索引号始终为0.) 你也可以使用我说的最后一种方法来继续你原本想做的选择。 (例如,使用另一个for循环来遍历您在前一个for循环中创建的int [] winnerPosition。)
希望这能帮到你!
答案 3 :(得分:0)
Iam提供了类似我正在构建的类似内容....这是使用[]打印所有数字和单独的数组,使用新行和数字,使用代码播放一下,您将能够打印出您喜欢的内容...
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的新手,因为这篇文章是活跃的,如果有人可以告诉我从这些数组中显示显示的方法,我会尝试几乎所有的东西......