【发布时间】:2015-12-11 06:59:21
【问题描述】:
我收到此代码的错误“缺少返回语句”:
public String getAuthorFullName(String title)
{
for (Book authorName : inventory)
if (authorName.getTitle() != null)
{
return authorName.getAuthor().getName().getFullName();
}
else
{
return null;
}
}
我想返回 o 返回写此书名的作者的全名,如果没有该书名的书,或者如果 title 为 null 或 "",则返回 null。
我试着把代码写成这样:
public String getAuthorFullName(String title)
{
for (Book authorName : inventory)
if (authorName.getTitle() != null)
{
return authorName.getAuthor().getName().getFullName();
}
return null;
但它总是返回列表中的第一个作者...
有人可以帮帮我吗?非常感谢。
【问题讨论】:
-
嗯,是的......你返回第一个,就是这样。您需要将
String title与任何内容进行比较,然后如果它们匹配则返回那个。Please do look through the logic of the loop. It makes sense why it is only returning the first -
首先要做的是通过always 使用大括号来让你的代码更清晰。例如,第二个代码块中的缩进表明
return null在循环中 - 但事实并非如此。戴上牙套,生活更加清晰。 -
您可能会注意到您正在检查
!= null,而不是相同的title。您可能也想检查一下.. -
我还强烈建议使用更有意义的名称 - 书与作者姓名不同。
-
第一个代码中出现错误,因为库存可能为空,因此不会执行 if 语句。您需要将 book.getTitle() 与 if 语句中的方法参数 title 进行比较,以免返回第一本书作者