gpt4 book ai didi

java - 这哪里出了问题?线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : 5

转载 作者:行者123 更新时间:2023-12-01 23:21:34 25 4
gpt4 key购买 nike

我正在尝试计算 Space[][] 中特定颜色的 Space 对象的数量。当我使用此方法来计算一行中特定颜色的对象数量时,它工作得很好:

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);
}
}
}

如果有帮助,异常始终等于二维数组“test”的行数和列数

最佳答案

我想这一行:

for(int row =0; column<board.length;row++)

应该是:

for(int row = 0; row < board.length; row++)

您的终止条件是检查column是否小于board.length,而它应该检查row是否小于 >板.长度。您不断增加 row,但终止条件永远不会成立,因此您最终会超出数组的范围。

另一件事是,您的代码隐式假设您正在使用方阵(即行数和列数相同的二维数组)。因此,如果行和列不相等,您也会遇到同样的问题。如果你的假设是有效的,那么这就很好。我想这是某种应该是正方形的游戏板。

关于java - 这哪里出了问题?线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20553297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com