Почему я получаю java .lang.ArrayIndexOutOfBoundsException здесь? - PullRequest
0 голосов
/ 18 апреля 2020
public long process(long[][] theArray) {

    long result = 0l;
    int xDimension = 0;
    int yDimension = 0;

    for (int i = 0; i < theArray.length; i++) {
        for (int j = 0; j < theArray[0].length; j++) {
            if (((yDimension + 12) < theArray.length) && ((xDimension + 12) < theArray[0].length)) {
                result = (theArray[yDimension][xDimension + 1]) + (theArray[yDimension][xDimension + 2])
                        + (theArray[yDimension + 1][xDimension]) + (theArray[yDimension + 1][xDimension + 3])
                        + (theArray[yDimension + 2][xDimension]) + (theArray[yDimension + 2][xDimension + 3])
                        + (theArray[yDimension + 3][xDimension + 1]) + (theArray[yDimension + 3][xDimension + 2]);
            }
            xDimension++;
        }
        xDimension -= (theArray[0].length);
        yDimension++;
    }

    return result;

}// method()

-> моя консоль говорит: Индекс 5 выходит за пределы длины 5. Но как это возможно вместе с моим условием if?

1 Ответ

0 голосов
/ 18 апреля 2020

xDimension начинается с 0 и будет отрицательным после одной итерации внешнего l oop.

...