我尝试使用 if-else 语句作为将元素添加到数组列表的条件。但是,它不断在条件之上添加另一个元素。
private ArrayList<Musician> songMusicians;
this.songMusicians = new ArrayList<>();
Musician musician = new Musician(name);
if (songMusicians.size() < 6) { //same output for (songMusicians.size() <= 5)
songMusicians.add(musician);
} else {
System.out.println("You can't have more than 5 musicians per song");
}
因此,它没有向数组列表中添加 5 个元素 songMusicians,而是添加了 6 个元素。
假设列表中有 5 个元素,当你说< 6
时,它会返回true
然后你再添加一个,使列表中有 6 个元素。
只需将其更改为songMusicians.size() < 5
.
songMusicians.size(( <5 在 if 条件中使用此选项。
根据您的代码(i<6(,循环将运行 6 次,即 0-1-2-3-4-5,即使您这样做 (i<=5(,循环仍将运行 6 次,即 0-1-2-3-4-5。您应该编写 (i<=4( 或 (i<5( 以使循环运行 5 次,即 0-1-2-3-4 –