arrayindexoutofbounds exception java что за ошибка

ArrayIndexOutOfBoundsException – это исключение, появляющееся во время выполнения. Оно возникает тогда, когда мы пытаемся обратиться к элементу массива по отрицательному или превышающему размер массива индексу. Давайте посмотрим на примеры, когда получается ArrayIndexOutOfBoundsException в программе на Java.

Попробуйте выполнить такой код:

Вы увидите ошибку:

Что здесь произошло? Ошибка в строке 27 – мы вызвали метод deposit(), а в нем уже, в строке 22 – попытались внести в поле массива значение «deposit». Почему выкинуло исключение? Дело в том, что мы инициализировали массив размера 11 (number = 11), н опопытались обратиться к 12-му элементу. Нумерация элементов массива начинается с нуля. Так что здесь надо сделать, например, так

Но вообще, это плохой код, так писать не надо. Давайте рассмотрим еще один пример возникновения ошибки ArrayIndexOutOfBoundsException:

Здесь массив заполняется случайными значениями. При выполнении IntelliJ IDEA выдаст ошибку

Код выдает ошибку

Exception in thread «main» java.lang.ArrayIndexOutOfBoundsException:0 at mass.Uporyadoc.main(Uporyadoc.java:34)

2 ответа 2

Вы создаете массив длиной 0 . Потом, считываете с консоли число в переменную n :

Но массив-то к этому моменту уже создан. Дальнейшее итерирование по массиву сразу выходит за пределы массива.

Кроме того, метод sort() не будет работать так, как вы ожидаете.

Новичок в Java, да и в программировании в целом. Скорей всего ошибка в цикле, но где точно я так и не понял. Заранее спасибо за помощь.

Написать код, который переворачивает массив: <1,2,3,7>>

То, что выводит консоль после компиляции:

4 ответа 4

тут не нужни минусовать каждый раз, сделайте не равно

P.S. Я бы советовал Вам проверить работы алгоритма на массивах нечётной длинны – PetSerAl

Так как при нечетной длине элемент по середине остается на месте, можно его не трогать

Массив идет от 0 до 3. Вы же здесь обращаетесь в первой итерации к 4ой ячейке.

Надо исправить на:

Вы получаете ошибку ArrayIndexOutOfBoundsException: 4 — это значит, что у вас выход за пределы массива, значение индекса равно 4 (при том что в массиве есть только индексы [0-3] — первый индекс имеет значение 0), то есть не существует элемента массива с таким индексом, к которому вы пытаетесь обратиться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками java массивы или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Оцените статью