【急】有一个三维数组,每一个索引相对有三个值例如: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(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);}}//}}}}
------解决方案--------------------------------------------------------