我努力让我的代码做我想做的事情。我有一个数组列表,其中包含自行车年龄,型号,租用号码和制造商的详细信息。在该列表中,我想找到具有匹配租期号码的自行车并更新其年龄。如果没有找到匹配,我想打印“找不到匹配的自行车”#39;我的问题是我只希望打印一次该消息,但每当我运行该程序时,它会多次打印。我想找到一种检查整个清单的方法,然后如果没有匹配的租用号码打印,则找不到匹配的自行车'一次。
public void updateAge(int hireNumber, int newAge) {
ArrayList<Bicycle> output = new ArrayList<>();
for (Bicycle bicycle : bicycles){
if (bicycle.getHireNumber()!=(hireNumber)){
System.out.println("No matching bicycle found.");
} else {
bicycle.setAge(newAge);
}
}
}
答案 0 :(得分:2)
如果满足条件isFound
,您可以声明true
标记并设置为bicycle.getHireNumber() == hireNumber
,如下所示:
ArrayList<Bicycle> output = new ArrayList<>();
boolean isFound = false;
for(Bicycle bicycle : bicycles){
if (bicycle.getHireNumber() == hireNumber) {
isFound = true;
bicycle.setAge(newAge);
return;//match found, so break & return
}
}
//now check isFound is true, if not print it (only once)
if(!isFound) {
System.out.println("No matching bicycle found.");
}