我想请求帮助。
代码更清晰:
public void findPeopleInRoom(String selectedWord) {
List <String> listPeople= new ArrayList<>();
//school.subordinateBuildings() return List of buildings
//b.people() return List of people
for(IBuilding b: school.subordinateBuildings()) {
if(b.getName().equals(selectedWord)) {
for(Person p1: b.people() ) {
listPeople.add(p1.getName());
}
}
else {
for(IBuilding b2: b.subordinateBuildings()) {
if(b2.getName().equals(selectedWord)) {
for(Person p2: b2.people() ) {
listPeople.add(p2.getName());
}
}
}
}
System.out.println(listPeople);
return;
}
}
实施例(结构):
但是这对我来说不是很好,有点随机。大多数时候都不会打印任何东西,有时是正确的。
感谢大家。
MmM ......
答案 0 :(得分:1)
您的return;
语句位于for循环中。因此它将在第一次迭代后执行,并退出该方法。要在所有建筑物上运行循环,摆脱return;
语句,无论如何都不需要void
方法。