Java 的 3D 数组(测试示例来自“Java:完整参考,第 9 版)
3D Array with Java (testing example from "Java: The Complete Reference, 9th edition)
我试图从我正在阅读的书中复制代码,但无法使其正常工作。这是代码:
public class ThreeDArray {
public static void main(String[] args) {
int threeD [][][] = new int [3][4][5];
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
threeD [i][j][k] = i*j*k;
}
}
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.print(threeD[i][j][k]+" ");
}
System.out.println("");
}
System.out.println("");
}
}
}
}
我得到这个输出:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
我这里全是零,我找不到这里的错误。哪里不对请指教
括号位置错误:您的第二个 for
循环应该在第一个循环之外:
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.printf("%d %d %d %d %n", i, j, k, i * j * k);
threeD [i][j][k] = i*j*k;
}
}
} // move to here ...
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.print(threeD[i][j][k]+" ");
}
System.out.println("");
}
System.out.println("");
}
// ... from here
按照您的方式,您正在使用打印循环递增 i
,这意味着您的第一个 i
循环在第二次迭代时退出。现在它打印:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12
0 0 0 0 0
0 2 4 6 8
0 4 8 12 16
0 6 12 18 24
我试图从我正在阅读的书中复制代码,但无法使其正常工作。这是代码:
public class ThreeDArray {
public static void main(String[] args) {
int threeD [][][] = new int [3][4][5];
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
threeD [i][j][k] = i*j*k;
}
}
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.print(threeD[i][j][k]+" ");
}
System.out.println("");
}
System.out.println("");
}
}
}
}
我得到这个输出:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
我这里全是零,我找不到这里的错误。哪里不对请指教
括号位置错误:您的第二个 for
循环应该在第一个循环之外:
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.printf("%d %d %d %d %n", i, j, k, i * j * k);
threeD [i][j][k] = i*j*k;
}
}
} // move to here ...
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.print(threeD[i][j][k]+" ");
}
System.out.println("");
}
System.out.println("");
}
// ... from here
按照您的方式,您正在使用打印循环递增 i
,这意味着您的第一个 i
循环在第二次迭代时退出。现在它打印:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 0 2 4 6 8 0 3 6 9 12 0 0 0 0 0 0 2 4 6 8 0 4 8 12 16 0 6 12 18 24