java после nextInt проблемы с nextLine

175
26 апреля 2022, 10:00

Есть такой код,который должен выводить информацию о 3 книгах, но код останавливается после 2ой и ошибка(Индекс 3 выходит за пределы длины 3) если в массив добавить еще 1 обьект то код работает до 3х если в массиве 5 обьекта то код работает до 4х,почему так? но у меня должен быть максимум 3 обьекта и выводить результатов этих 3 обьектов

package com.company;
    import java.util.Scanner;
    public class Book {
        private String name,author,baspager;
        private int n;
    
        public void setName(String name){
            this.name = name;
        }
        public String getName(){
            return name;
        }
    
        public void setAuthor(String author){
            this.author = author;
        }
        public String getAuthor(){
            return author;
        }
    
        public void setBaspager(String baspager){
            this.baspager = baspager;
        }
        public String getBaspager(){
            return baspager;
        }
    
        public void setN(int n){
            this.n = n;
        }
        public int getN(){
            return n;
        }
    
        public void getBookInfo(){
            System.out.println("Кітаптың аты:" + name + "Кітаптың авторы:" + author + "Кітаптың баспагері: " + baspager + "Кітаптың бет саны:" + n);
        }
    }
    
    
    class lab2Result{
        public static void main(String[] args){
            String a;
    
            Book Book1 = new Book();
            Book Book2 = new Book();
            Book Book3 = new Book();
           // Book Book4 = new Book();
    
            Book objects[] = {Book1,Book2,Book3};
    
            Scanner x = new Scanner(System.in);
    
            for(int i = 1;i <= 4;i++) {
               /* if (i == 4) {
                    break;
                }*/
    
                objects[i].setName(x.nextLine());
                objects[i].setAuthor(x.nextLine());
                objects[i].setN(x.nextInt());
                x.nextLine();
                objects[i].setBaspager(x.nextLine());
    
    
                objects[i].getBookInfo();
    
            }
        }
    }
Answer 1

я понял) там массив начинается с 0 а мой цикл с 1 поэтому так

READ ALSO
Полиморфизм. Создайте метод который ожидает параметр как объект родительского типа. Внутри этого метода вызовите метод объекта

Полиморфизм. Создайте метод который ожидает параметр как объект родительского типа. Внутри этого метода вызовите метод объекта

У меня есть домашнее задание, но прохожу обучение на английском и не могу до конца понять что конкретно хотят и что нужно сделатьВ оригинале...

260
Создание объектов в Spring

Создание объектов в Spring

Пытаюсь начать изучать SpringНо не могу понять как создать элементарный объект, передав в конструктор значения

249
перегрузка метода, что будет выполняться

перегрузка метода, что будет выполняться

Подскажите пожалуйста почему выполняется второй метод (хотя он стринговый), и при компиляции ругается на преобразование:

205
Android Studio и Gradle: настройки по умолчанию для нового проекта

Android Studio и Gradle: настройки по умолчанию для нового проекта

Как переписать начальные настройки Gradle для нового Android проекта? Я установил новое Android API и удалил старыеНо при создании нового проекта Gradle...

248