Java系列正在打印重复项

时间:2015-12-03 02:15:14

标签: java

case 2:
    System.out.println("Please enter Book ID: ");
    String userinput2 = sc.next();
    for (int i = 0; i < myBooks.size(); i++) {
        if (myBooks.get(i).getBookID().contains(userinput2)) {
            System.out.println("BookID: " + myBooks.get(i).getBookID() + "\nTitle: "
                    + myBooks.get(i).getTitle() + "\nAuthor: " + myBooks.get(i).getAuthor());
            System.out.println("Please enter new details of book");
            System.out.println("Title: ");
            String userinput7 = sc.next();
            myBooks.get(i).setTitle(userinput7);
            System.out.println("Author: ");
            String u1 = sc.next();
            myBooks.get(i).setAuthor(u1);
            myBooks.get(i).setOnLoan(false);
            myBooks.get(i).setNumLoans(0);
            System.out.println("---------------------------------------------------");
            System.out.println("The book has been successfully updated");
            System.out.println("Book ID: " + myBooks.get(i).getBookID() + " " + "\nTitle: "
                    + myBooks.get(i).getTitle() + " " + "\nAuthor: " + myBooks.get(i).getAuthor());
            System.out.println("---------------------------------------------------");
        }
        else { System.out.println("Please enter a correct bookID");
        }
    }

我的验证检查有问题。如果用户输入的bookID不存在,请输入正确的bookID&#34;而不是打印出来#34;一次,它打印出来4次,相当于我在数组列表中的对象数量。有没有办法对此进行排序?

1 个答案:

答案 0 :(得分:1)

您的其他声明位于for语句的中间

for (int i = 0; i < myBooks.size(); i++) {
        if (myBooks.get(i).getBookID().contains(userinput2)) {
            [[do stuff]]
        }
        else { System.out.println("Please enter a correct bookID");
        }
}

它看起来应该在if语句的中间

if (myBooks.get(i).getBookID().contains(userinput2)) {
    for (int i=...) {
       [[do stuff]]
    }
}
else { System.out.println("Please enter a correct bookID");
}