Java程序评估两次

时间:2015-10-25 19:00:41

标签: java if-statement

    public Iterator<IBookItem> findBooksBySeller(String seller) {
        for(int i = 0; i < sellerList.size(); i++){
            if(sellerList.get(i).equals(seller))
            {
                System.out.println("The seller: " + seller + " has the following books for sale: " + titleList.get(i) + " £" + priceList.get(i));
                System.out.println("-----------------------------------------------");

            }

        }
        System.out.println("The Seller: " + seller + " has no Books for Sale");
        System.out.println("--------------------------------------------");
        return null;

    }

这是我的代码,它打印出两个语句,有人可以告诉我为什么吗?

4 个答案:

答案 0 :(得分:0)

如果循环的某些迭代条件为真,则将执行第一个语句。第二个语句总是在循环结束后打印(因为循环中没有返回语句)。

您可能在if语句中缺少return语句。

答案 1 :(得分:0)

你没有做任何事情来防止第二组println被执行。

您可以尝试在第一组println之后添加return null;

答案 2 :(得分:0)

由于您已从else子句中排除了代码的底部部分,因此无论是否执行if子句,都将打印它。总是执行if-else子句之外的任何内容。

答案 3 :(得分:0)

添加&#39;返回声明&#39;在&#39; for&#39;结束时循环。