通过循环创建迭代变量

问题描述 投票:0回答:1

所以我是java新手(之前学过python、jss、html和css),最近开始学习类和对象。 我正在制作一个图书库作为练习,并希望用户使用扫描仪输入图书数据,我将显示到目前为止我所做的代码。我知道我没有 while 循环,但我想在执行此操作之前整理出添加一本书的代码。目前,我陷入了如何迭代和添加多本书的困境,例如,如果用户选择添加一本书,我假设它应该添加像 book1name= Booklist.name 这样的书籍,而当用户想要添加另一本书时,我假设它应该添加是 book2name= Booklist.name。然而,我正在努力解决如何迭代它(自动将其从 book1name 更改为 book2name)以及如何在代码运行时更改变量名称。我知道我可能搞砸了解释,但希望更有经验的程序员能够理解我的意思。

非常感谢任何帮助。 非常感谢。


import java.util.Scanner;

public class BookLibrary {
    int counter=1;
    public static void main (String[]args) {
        Scanner choiceScan=new Scanner(System.in);
        System.out.println("Do you want to 1:Add a book or 2:Remove a book");       
        int choice= choiceScan.nextInt();
        if (choice==1) {
            System.out.println("You want to add a book");
            addBook();
        }
        
    }
    public static void addBook() {
        Scanner entryScan=new Scanner(System.in);
        System.out.println("Enter the Name of the book");
        String name=entryScan.nextLine();
        System.out.println("Enter the Author of the book");
        String author=entryScan.nextLine();
        
    }   
}

public class BookList {
    String name;
    String author;
    int bookNum;
    
    public BookList(){
        
    }
    
    public void printLibrary() {
        System.out.println("Book name: "+name );
        System.out.println("Author: " +author);
        System.out.println("Book Number: "+bookNum);
    }
    
    
}

我尝试在谷歌上寻找解决方案,但很难描述问题,并且不想求助于 Chatgpt,因为我通常很难理解它提供的解释。

java variables iteration user-input
1个回答
0
投票

您缺少的关键概念是集合,例如列表数组。 (在 Java 中,前者使用起来要简单得多。)

您拥有一个

List<Book>
(发音为“书籍列表”),而不是 15 个变量(书籍 book0、书籍 book1、...、书籍 book14):

可以这样创建列表:

List<Book> books = new ArrayList<>();

然后您可以向其中添加书籍:

Book myBook = ...;
books.add(myBook);

...从中获取一本书:

Book theThirdBook = books.get(2); // Zero indexed: 0 is the first one

...并检查有多少个:

int bookCount = books.size();
© www.soinside.com 2019 - 2024. All rights reserved.