如何搜索整个数组然后返回1个东西

时间:2016-11-28 00:32:58

标签: java arrays loops

我努力让我的代码做我想做的事情。我有一个数组列表,其中包含自行车年龄,型号,租用号码和制造商的详细信息。在该列表中,我想找到具有匹配租期号码的自行车并更新其年龄。如果没有找到匹配,我想打印“找不到匹配的自行车”#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);
       }
    }
}

1 个答案:

答案 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.");
 }