Программа выбрасывает исключение “ArrayIndexOutOfBoundsException”

228
18 мая 2018, 02:00

Вот мой код:

import java.util.*;
class MyClass{
public static void main (String[] args){
Scanner sc = new Scanner (System.in);
int x =  sc.nextInt();
int[] arr = new int[8];
for(int i = 0; i<9; i++){
    arr[i] = x*(2+i);
    System.out.print(arr[i] + " ");
}
}
}

Выбрасывает следующее исключение:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:8 at MyClass.main(MyClass.java:8)

Из-за чего появилось это исключение? Как его избежать?

Answer 1

Исключение вам говорит "ArrayIndexOutOfBounds" - индекс массива вышел за границы.

У вас массив объявлен из 8 элементов (т.е. 0,1,2,3,4,5,6,7). А вы в цикле идете от 0 до 8 .. вот вам и выход за границы.

Либо в цикле поменяйте i < 9 на i < 8, либо массив объявляйте new int[9].

READ ALSO
Проверка массива на возврастание

Проверка массива на возврастание

Понятно как узнать, что массив строго возврастающий или убывающий:

264
Реализация подсказки для пользователя

Реализация подсказки для пользователя

Делаю приложение с математическими и логическими квестамиНа каждом уровне у пользователя будет возможность использовать подсказку, то есть...

268
Ошибка java.lang.NullPointerException в jsp

Ошибка java.lang.NullPointerException в jsp

Всем приветпытаюсь при помощи сервелета + jsp сделать генерацию таблиц по введённым числам

266
Не создается окно в eclipse

Не создается окно в eclipse

Когда пытаюсь создать окно просто через некоторое время в консоли появляется надпись terminated и всеМне сказали нужно использовать SwingUtilities,...

243