请帮忙看一下一个三维数组的问题  11any社区请帮忙看一下一个三维数组的问题主题最新回复RSS

论坛版主: kevin
hum_bert
发表于: 2009-01-11 15:39
hum_bert的论坛头像

小弟初学Java,三维数组老是不怎么懂。请看如下代码,哪位高手帮忙解释一下,越详细越好,不胜感激!

public class ThrDimArr {  
 
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();   
}  
}  
 
}  
 

何荷
发表于: 2009-01-14 10:47
11any培训老师
何荷的论坛头像
这个程序完成的功能可以分成两大块:首先完成的是对三维数组中60个元素的赋值,然后完成的功能是一次将这60个元素的值输出。
具体来说,
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;    是对数组60个元素一次赋值,估计你应该没什么问题能够理解。
而后面的
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();  
  } 
}  你可以逐层循环去看当i=0,j=0的时候,执行最内层循环,一次输出a[0][0][0],a[0][0][1],a[0][0][2],a[0][0][3],a[0][0][4],之后由于有System.out.println();所以在输出五个元素后换行。然后跳到出到上一层循环,依次输出a[0][1][0],a[0][1][1],a[0][1][2],a[0][1][3],a[0][1][4],其余的就好理解了,都是一样的道理,每行输出五个元素。而对于第二重循环中,还有一个System.out.println(); ,所以当第二重循环结束一次之后需要换一行,所以体现在输出上即:每行输出五个元素,而每输出四行要换一行,共输出60个元素。即将三维数组中每个元素输出一次。

面包魔法师 女
发表于: 2009-01-14 19:46
面包魔法师的论坛头像
何荷老师终于现身了!!!

面包

 以:    查找培训