Не удается присвоить значение в Java 2D Array - ArrayIndexOutOfBoundsException - PullRequest
1 голос
/ 14 марта 2011

У меня проблемы с назначением значения моему 2D-массиву в Java Последняя строка кода, 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';
            }
        }
    }
}

1 Ответ

5 голосов
/ 14 марта 2011

Вот проблема rowLoop <= theGrid.length и colLoop <= theGrid[0].length.Это должно быть:

rowLoop < theGrid.length

и

colLoop < theGrid[0].length

Причина ошибки в том, что ваш индекс увеличивается до длины массива.Итак, если длина была 10, вы переходите к индексу 10. Это недопустимый индекс в массиве.Массивы имеют действительные индексы от 0 до length - 1.

...