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