【发布时间】:2015-02-24 03:25:55
【问题描述】:
我有一个包含书籍的数组列表。我正在尝试做的(出于各种原因)是使用 While 循环继续将书籍添加到我的数组列表中,直到我告诉程序停止。为了让它停止,我使用扫描仪询问人类用户是否应该添加另一本书。如果用户说是,则该方法将重复,否则该方法将停止。
不幸的是,我被困在两个领域(目前)。首先,我不确定如何将决策插入到方法中,我试过了:
while(decision.equals("Yes"){addBooks(anyTitle,anyAuthor);},
然而,这似乎是错误的,因为它进入了一个循环(虽然我想要),但它会导致 2 个问题:A)即使我输入了其他内容,该方法也不会结束(除非我使用另一个扫描仪并包含break) 和 B) 相同的输入字段一遍又一遍地插入到数组列表中,而我没有机会输入新的字符串。
/**
* Method to add a single book
*/
public void setOneBook(String anyTitle, String anyAuthor){
bookList.add (new Book(anyTitle,anyAuthor));
}
/**
* Method to add books to collection until the command to stop is given.
*/
public void addBooks(String anyTitle, String anyAuthor){
bookList.add (new Book(anyTitle,anyAuthor));
System.out.println("Would you like to add another book?");
String decision = keybd.next();
}
我现在感觉很笨,所以请不要嘲笑自己。
在此过程中,我会弄乱我的代码,所以如果有任何变化(无论好坏),我都会更新我的帖子。
【问题讨论】:
-
在
addBooks()中声明的decision与控制循环的变量不同,因为在Java 中everything is passed by value。 -
您尝试做的事情听起来与我提议的 here 非常相似。
标签: java arraylist while-loop