Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中具有增强for循环的多维数组打印到命令行_Java_Multidimensional Array - Fatal编程技术网

java中具有增强for循环的多维数组打印到命令行

java中具有增强for循环的多维数组打印到命令行,java,multidimensional-array,Java,Multidimensional Array,我基本上是从一个已经在这个论坛上发布和回答的问题推断出来的,我修改了这个问题,但无法打印到命令行。这类似于我在大学的java课程中的一个问题,我们假设在三维数组上使用增强的for循环。我收到一条错误消息,它是“表达式的非法开始”和“不是语句”。我差点就把它编译好了,但我遗漏了一些东西。我需要一些帮助。代码如下: public class ThreeDimensionalArray { public static void main(String[] args) { in

我基本上是从一个已经在这个论坛上发布和回答的问题推断出来的,我修改了这个问题,但无法打印到命令行。这类似于我在大学的java课程中的一个问题,我们假设在三维数组上使用增强的for循环。我收到一条错误消息,它是“表达式的非法开始”和“不是语句”。我差点就把它编译好了,但我遗漏了一些东西。我需要一些帮助。代码如下:

public class ThreeDimensionalArray {

    public static void main(String[] args) {
        int[][][] array = new int[4][5][6];//initializing array
        int sum = 0;//define sum
        for (int[][] i : array)//start of enhanced for loop
        {
            for (int[] j : i)
                for (int k : j)
                    sum += k;

            System.out.println("Output is " + sum);//output sum
        }//end enhanced for loop
    }//end method main

}//end ThreeDimensionalArray

println必须始终是循环

public class ThreeDimensionalArray
{

public static void main(String[] args)
{
int[][][] array = new int[4][5][6];//initializing array
int sum=0;//define sum
for(int[][] i: array)//start of enhanced for loop
{
for(int[] j: i)

for(int k:j) 
sum +=[k];



}//end enhanced for loop
  System.out.println("Output is",sum);//output sum
}//end method main

//end ThreeDimensionalArray
}
打印应该在主循环之外。
在sum=中,k不是arry,而是int。

去掉k周围的括号。I去掉k周围的括号。这段代码正是我的老师昨天在课堂上概述的。根据他的说法,第一个for循环用于3D,第二个for循环用于2D,第三个for循环用于1D。总和被分配给变量k。您的讲师的描述是正确的。一个
int
的3D数组最好被认为是“一个
int
数组数组数组”。我刚刚使用了printf格式说明符并编译了它。但是当我运行它时,总和是0,这是错误的答案。我还得进一步研究逻辑。谢谢大家的帮助和回答。@swydell,您得到的是0,因为数组在您的代码中从未初始化(用值填充)。因为它是
int
s,所以它们默认为0。我同意,您需要启动数组内容实际上答案0是正确的。但是如何初始化数组内容。我想我已经用标记4、5、6做过了。我现在有点困惑。这是一个三维阵列,对吗?现在,what-for循环初始化行,what-for循环初始化列?4、5和6只是告诉它数组需要多大(4x5x6),而不是存储桶中实际包含的内容。您只需要分配值。
int[][][] array = new int[4][5][6];//initializing array
    int sum=0;//define sum
    for(int[][] i: array)//start of enhanced for loop
    {
        for(int[] j: i){
            for(int k:j){ 
                sum +=k;    
            }
        }
    }//end enhanced for loop

    System.out.println("Output is " + sum);//output sum