Я пытаюсь создать программу, которая принимает в качестве пользовательских данных названия книг, количество страниц и год публикации. Когда пользователь ничего не вводит в поле имени, программа должна спросить пользователя, что будет напечатано: только названия книг или вся информация, предоставленная пользователем. Вот мой основной код:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int index = 0;
Scanner reader = new Scanner(System.in);
ArrayList<Books> book = new ArrayList<>();
while (true) {
System.out.println("Name of the book: ");
String name = reader.nextLine();
if (name.isEmpty()) {
break;
}
System.out.println("Number of pages: ");
int pages = Integer.parseInt(reader.nextLine());
System.out.println("Year: ");
int year = Integer.parseInt(reader.nextLine());
book.add(new Books(name,pages,year));
}
while (true) {
System.out.println("What do you want to print?");
String whatwillbeprinted = reader.nextLine();
if (whatwillbeprinted.equals("everything")) {
while(index < book.size()) {
System.out.println(book.get(index));
index++;
}
}
if (whatwillbeprinted.equals("names")) {
while(index < book.size()) {
// print only names of the books
}
}
}
}
}
А вот мой Java класс с именем Books:
public class Books {
private String name;
private int pages;
private int year;
public Books(String name, int pages, int year) {
this.name = name;
this.pages = pages;
this.year = year;
}
@Override
public String toString() {
return this.name + ", " + this.pages + ", " + this.year;
}
}
Все работает правильно до этого последнего оператора while. Как я могу печатать только первые элементы моих объектов (названия книг)? Заранее спасибо.