1

Java で 2D 配列に値を割り当てることができません。コードの最後の行 でエラーtheGrid[rowLoop][colLoop] = 'x';がスローされていArrayIndexOutOfBoundsExceptionます。誰かがなぜこれが起こっているのか説明してもらえますか?

これは私のコードです...

public class Main {
    public static char[][] theGrid;

    public static void main(String[] args) {
        createAndFillGrid(10,10);
    }

    public static void createAndFillGrid(int rows, int cols) {
        theGrid = new char[rows][cols];
        int rowLoop = 0;

        for (rowLoop = 0; rowLoop <= theGrid.length; rowLoop++) {
            int colLoop = 0;

            for (colLoop = 0; colLoop <= theGrid[0].length; colLoop++) {
                theGrid[rowLoop][colLoop] = 'x';
            }
        }
    }
}
4

1 に答える 1

5

ここに問題がrowLoop <= theGrid.lengthありcolLoop <= theGrid[0].lengthます。そのはず:

rowLoop < theGrid.length

colLoop < theGrid[0].length

エラーの理由は、インデックスが配列の長さに達しているためです。したがって、長さが 10 の場合は、インデックス 10 まで上げます。これは、配列への有効なインデックスではありません。配列には から0までの有効なインデックスがありますlength - 1

于 2011-03-14T19:38:54.640 に答える