gpt4 book ai didi

java - 使用 Java 进行 3D 数组(来自“Java : The Complete Reference, 第 9 版”的测试示例)

转载 作者:行者123 更新时间:2023-12-01 11:59:52 25 4
gpt4 key购买 nike

我试图从我正在阅读的书中复制代码,但无法使其工作。这是代码:

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  

关于java - 使用 Java 进行 3D 数组(来自“Java : The Complete Reference, 第 9 版”的测试示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28054810/

25 4 0