我如何突破if语句?

问题描述 投票:-2回答:1

我的代码的目标是,如果书名包含给定的参数,则打印出书名。提供了这些测试,并通过了除此给定输入之外的所有测试:预期的输出是“ Harry”,但是我得到的实际输出是“未找到搜索词:Harry”。因此,第一个if陈述对于Harry而言并没有中断。我一直在寻找我做错了什么却找不到的地方,如何解决这个问题。这是我的代码:

 public void execute(LibraryData data) {
        for (BookEntry book : data.getBookData()) {
            if (book.getTitle().toLowerCase().contains(givenArgument.toLowerCase())) {
                System.out.println(book.getTitle());
                break;
            } else {
                System.out.println("No hits found for search term: " + givenArgument);
                break;
            }
        }
java if-statement break
1个回答
0
投票

[在使用其他时,您不必中断它


0
投票

您的代码仅检查第一本书,因为无论哪种情况,您break都循环外。必须将打印“ No hits”的代码移到循环外,因为直到列表完全迭代后您才知道是否有Hits。

要知道是否发现了热点,您需要一个boolean变量来记住这一点。

boolean found = false;
for (BookEntry book : data.getBookData()) {
    if (book.getTitle().toLowerCase().contains(givenArgument.toLowerCase())) {
        System.out.println(book.getTitle());
        found = true;
        break;
    }
}
if (! found) {
    System.out.println("No hits found for search term: " + givenArgument);
}
© www.soinside.com 2019 - 2024. All rights reserved.