我正在尝试创建一个输出为的三维数组:
[1,2,3], [1,2,3], [1,2,3], [1,2,3]
[1,2,3], [1,2,3], [1,2,3], [1,2,3]
[1,2,3], [1,2,3], [1,2,3], [1,2,3]
[1,2,3], [1,2,3], [1,2,3], [1,2,3]
[1,2,3], [1,2,3], [1,2,3], [1,2,3]
这是我想出的代码:
public class Triples {
public static void main(String[] args) {
int[][][] triplet = new int[5][4][3];
for (int i = 0; i < triplet.length; i++)
{
for (int j = 0; j < triplet[i].length; j++)
{
System.out.print("[");
for (int k = 0; k < triplet[i][j].length; k++)
{
triplet[i][j][k] = i+1;
System.out.print(triplet[i][j][k] + "," + "");
}
System.out.print("]");
}
System.out.println();
}
}
}
我得到的结果是这样的:
[1,1,1,][1,1,1,][1,1,1,][1,1,1,]
[2,2,2,][2,2,2,][2,2,2,][2,2,2,]
[3,3,3,][3,3,3,][3,3,3,][3,3,3,]
[4,4,4,][4,4,4,][4,4,4,][4,4,4,]
[5,5,5,][5,5,5,][5,5,5,][5,5,5,]
我的问题是我不确定如何将第三个 for 循环中的值递增为 1、2 和 3。我尝试了不同的组合,但结果要么相同,要么不正确。有小费吗?
最佳答案
简单地分配k+1
的值。就这样
解释:(我不太擅长这个。)
i
和 j
的值不会在 k
循环中改变。所以你不需要它们。但是 ok k
的值在每次迭代中都会发生变化。此外,它每次都会重置为 0
。但我们不想要 0
,所以将其更改为 k+1
。
请在您的语句中放入一些调试 println
。他们帮了很多忙。
三元组[i][j][k] = k+1;
新的最内层 for 循环看起来像这样:
for (int k = 0; k < triplet[i][j].length; k++)
{
triplet[i][j][k] = k+1;
//Don't put the comma after last digit.
if(k==triplet[i][j].length-1) {
System.out.print(triplet[i][j][k] );
}else {
System.out.print(triplet[i][j][k] + "," + "");
}
}
关于java - 如何在 Java 中正确地将值添加到 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54339255/