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

标签 java arrays macos java-3d eclipse-luna

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

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/

相关文章:

java - Java Stack 类中的 empty() 与 isEmpty()

c++ - 使用数组时可能导致此错误的原因是什么?解决方案?

arrays - 使用Python计算行是否包含这个和那个,然后制作结果的热图(?不确定这是否是正确的术语)

macos - 确保RubyMine中的EOF换行

java - 查找堆深度比 O(n^2) 更快

java - 替换泛型类型的字段

java - 运行 Spark fpgrowth 示例代码时出现错误

javascript - 如何获取数组内的数组?

objective-c - 如何在 Objective-C 中自定义绘制窗口标题栏?

iphone - 'NSObject<PageControlDelegate>' 没有可见的@interface 声明选择器 'pageControlPageDidChange:'