我正在尝试创建一个三维数组,其输出为:
[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。我尝试了不同的组合,但是它们导致的结果相同或不正确。有小费吗?
答案 0 :(得分:3)
只需分配k+1
的值。就这样
说明:(我不太擅长。)
i
和j
的值在k
循环中不会改变。因此,您不需要它们。但是ok k
的值在每次迭代中都会改变。而且每次都会重置为0
。但是我们不希望0
更改为k+1
。
请在语句中放入一些调试println
。他们有很大帮助。
triplet[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] + "," + "");
}
}
答案 1 :(得分:0)
您需要在第二个循环中初始化加法器的值,然后在较深的循环中将值加1。 试试这个:
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] = k+1;
System.out.print(triplet[i][j][k] + "," + "");
}
System.out.print("]");
}
System.out.println();
}
}
}
答案 2 :(得分:0)
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] = k+1;
if(k==triplet[i][j].length-1)
System.out.print(triplet[i][j][k] );
else
System.out.print(triplet[i][j][k] + ",");
}
if(j==triplet[i].length-1)
System.out.print("]");
else
System.out.print("], ");
}
System.out.println();
}
}
}