首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

比较三维空间数组中的元素

2012-09-15 
比较三维数组中的元素【急】有一个三维数组,每一个索引相对有三个值例如:int[0][0][value]{1,2,2,3};我想比

比较三维数组中的元素
【急】有一个三维数组,每一个索引相对有三个值例如:int[0][0][value]={1,2,2,3};我想比较其中的元素,但抛出异常Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at yan.Test.twoGrade(Test.java:95)
at yan.Test.main(Test.java:116)
,我比较的代码如下:for(int x = 0; x < arr.length; x++){
for(int y = 0; y < arr[x].length; y++){
for(int z = 0; z <arr[x][y].length; z++){ 
if(arr[x][y][z]==arr[x][y][z+1]){
//grade=grade+20;
System.out.println("第" + x + "行,第" + y +"列的第" + z + "个数据是:" + arr[x][y][z]);
System.out.println("违约分数为"+100);
}
if(Math.abs(arr[x][y][z+1]-arr[x][y][z])==1 && Math.abs(arr[x][y][z-1]-arr[x][y][z])==1){
System.out.println("第" + x + "行,第" + y +"列的第" + z + "个数据是:" + arr[x][y][z]);
System.out.println("违约分数为"+50);
}
//}
}
}
}
求高人指点,谢谢!!!

[解决办法]

探讨
if(Math.abs(arr[x][y][z+1]-arr[x][y][z])==1 && Math.abs(arr[x][y][z-1]-arr[x][y][z])==1){

[解决办法]
if(arr[x][y][z]==arr[x][y][z+1]){
if(Math.abs(arr[x][y][z+1]-arr[x][y][z])==1 
同理z+1会越界。
[解决办法]
最简单的办法就是多加几个if else语句
Java code
for(int x = 0; x < arr.length; x++){for(int y = 0; y < arr[x].length; y++){for(int z = 0; z <arr[x][y].length; z++){ if(arr[x][y][z]==arr[x][y][z+1]){if(z+1 > arr[x][y].length-1){System.out.println("越界");}else{//grade=grade+20;System.out.println("第" + x + "行,第" + y +"列的第" + z + "个数据是:" + arr[x][y][z]);System.out.println("违约分数为"+100);}}if(Math.abs(arr[x][y][z+1]-arr[x][y][z])==1 && Math.abs(arr[x][y][z-1]-arr[x][y][z])==1){if(z + 1 > arr[x][y].length-1 && z - 1>=0){System.out.println("越界");}else{System.out.println("第" + x + "行,第" + y +"列的第" + z + "个数据是:" + arr[x][y][z]);System.out.println("违约分数为"+50);}}//}}}}
[解决办法]
探讨

那我该怎么不让它越界那?

热点排行