我想要計算特定顏色的空間[] []中的空間對象的數量。當我用這個方法來計算連續特定顏色的物體的數量,它工作正常:這是哪裏出錯?線程「main」中的異常java.lang.ArrayIndexOutOfBoundsException:5
public int countRowWhite(Space[][] board, int row)//TESTED//when counting in a row, the columns go up the row stays the
//same,THIS GOES THROUGH THE ROW ADDING UP NUMBERS OF WHITES
{
int count = 0;
for(int column=0; column<board.length;column++)
{
if((board[row][column]).getColour().equals(spaceColour.White))
{
count+=1;
}
}
return count;
}
然而,當我嘗試這種方法,計算在列對象的數量,我得到一個例外:
public int countColumnWhite(Space[][] board, int column)//when counting in a row, the columns go up the row stays the
//same,THIS GOES THROUGH THE ROW ADDING UP NUMBERS OF WHITES
{
int count = 0;
for(int row =0; column<board.length;row++)
{
if((board[row][column]).getColour().equals(spaceColour.White))
{
count+=1;
}
}
return count;
}
我稱這兩種方法在下面的測試方法:
public void testMethods()
{
Space[][] test = new Space[5][5];
for(int i = 0; i < test.length; i++){
for(int j = 0; j < test.length; j++){
test[i][j] = new Space(spaceColour.Null);
}
}
test[0][1].setColour(spaceColour.White);
test[0][2].setColour(spaceColour.Black);
test[2][1].setColour(spaceColour.Black);
test[2][2].setColour(spaceColour.Black);
System.out.println(countColumnWhite(test, 0));
for(int row= 0; row<test.length;row++)
{
for(int column = 0; column<test.length;column++)
{
if (test[row][column].getColour().equals(spaceColour.White))
{
System.out.println("Whites at row: " + row + " and Column: "+ column);
}
}
}
如果有幫助,異常總是等於行和2D陣列「測試」的列數有
你確定'countRowWhite'的工作原理應該如何?如果你的數組有相同數量的行和列,它會工作正常,但是在一般情況下,你應該替換使用'for(int column = 0; column
Pshemo
總是相同的行數和列數:) – user2969516