В чем ошибка scanner.nextInt();?

171
08 февраля 2018, 16:42

Добрый день. Ребята, подскажите что здесь не так? Вот ошибка

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at Main.main(Main.java:25)

25 строка: toys[i] = scanner.nextInt();

На сортировку не обращайте внимание, я до нее не добираюсь)

Вот код:

public static void main(String args[]) {
    int i,j;
    System.out.println("Введите размерность массива: ");
    Scanner scanner = new Scanner(System.in);

    int toys[] = new int[scanner.nextInt()-1];
    System.out.println("Заполните массив данными: ");
    for ( i = 0; i <= toys.length; i++) {
        toys[i] = scanner.nextInt();
    }
    System.out.println("Массив упорядоченный по возростанию:");
   for ( i = 0; i < toys.length ; i++) {
        for (int element:toys) {
            int res;
            res = toys[i+1];
            if (res > element){
                toys[i] = res;
                toys[i+1] = element;
            }
        }
    }
}

Спасибо За помощь )

Answer 1

Ошибка говорит о том, что имеется выход за размеры массива. Длина toys.length, к примеру, 10, отсчет начинается с нуля, последний элемент из 10 в этом случае будет под номером 9.

В цикле i <= toys.length вы, следуя вышесказанному примеру, требуете выполнять цикл и тогда, когда i сравняется с 10 номером элемента, которого как раз таки нет.

Answer 2
for ( i = 0; i <= toys.length; i++) {
for (i = 0; i < toys.length; i++) {
READ ALSO
Ошибка cannot find symbol BorderLayout

Ошибка cannot find symbol BorderLayout

Пытаюсь запустить пример использования KeyListener, но компилятор выдает ошибку

184
Работа с odt из java

Работа с odt из java

Есть файл odtКак в него добавить какие нибудь метки, и потом на место этих меток подставлять значения из кода? Используется ODF Toolkit

148
Выравнивание заголовка в Activity

Выравнивание заголовка в Activity

В Activity используется метод setTitle() для установки заголовкаНо заголовок устанавливается прижатый к левому краю

162