我一直试图将我的方法改为空白。但每当我更改它时,它总是打印出书名和错误信息。如何将我的方法更改为无效?
public int displayBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
System.out.println("Index: " + i);
System.out.println(library.returnBookName());
System.out.println(library.authorName());
return i;
}
}
return -1;
System.out.println ("Book name is not valid");
}
答案 0 :(得分:2)
您还需要删除return语句(并通过简单的return(无参数)替换第一个语句)。
public void displayBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
System.out.println("Index: " + i);
System.out.println(library.returnBookName());
System.out.println(library.authorName());
//removed return i;
return;
}
}
// removed return -1;
System.out.println ("Book name is not valid");
}
答案 1 :(得分:1)
尝试这样的事情,我相信它会起作用:
public void displayBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
System.out.println("Index: " + i);
System.out.println(library.returnBookName());
System.out.println(library.authorName());
return; // modified here
}
}
// modified here
System.out.println ("Book name is not valid");
}
答案 2 :(得分:1)
当你找到这本书时,你可能仍然想要回来 - 这可能是你之前错过的:
public void displayBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
System.out.println("Index: " + i);
System.out.println(library.returnBookName());
System.out.println(library.authorName());
return;
}
}
System.out.println ("Book name is not valid");
}
就我个人而言,我可能会将“搜索”从“显示”中分离出来:
public Library getBookDetails(String bookName) {
for (int i = 0; i < classrooms.size(); i++) {
Library library = librarys.get(i);
if (library.returnBookName().equals(bookName)) {
return library;
}
}
return null;
}
public void displayBookDetails(String bookName) {
Library bookDetails = getBookDetails(bookName);
if (bookDetails == null) {
System.out.println ("Book name is not valid");
} else {
System.out.println(bookDetails.returnBookName());
System.out.println(bookDetails.authorName());
}
}
(当然,请注意,此时没有“索引”这样的东西。如果你真的需要显示它,那么它需要成为Library
的一部分。)
答案 3 :(得分:0)
您可以使用return
而不使用值来执行此操作:
System.out.println(library.authorName());
return;
}
答案 4 :(得分:0)
您尝试更改为void的返回类型仅表示方法返回的内容。然而,该方法可能具有不同的副作用,例如I / O,例如,打印到控制台。不幸的是,没有办法限制Java或大多数OOP语言中的副作用。功能编程旨在消除函数中的所有副作用,因此可以更容易地推理出程序。