Удалите ;
в if (found == true);
, потому что это читается как: if this condition is true, do notihng
и всегда используйте фигурные скобки:
if (found == true) {
System.out.println(customer.returnFamilyName());
}
Кроме того, включите приращение в цикл while
, иначе вы недействительно повторяю что-нибудь.
Этот код работает, потому что ваш первый элемент совпадает с искомым элементом, попробуйте другой, и вы попадете в бесконечный цикл.
Попробуйте использовать версию, подобнуюthis:
public void searchCustomer( String familyName ) {
for ( customer current : CustomerList ) {
if ( current.returnFamilyName().equalsIgnoreCase( familyName )) {
System.out.println( current.returnFamilyName() );
break;
}
}
}
Некоторые дополнительные замечания:
В Java предложения должны начинаться с верхнего регистра, поэтому имя класса должно быть объявлено как Customer
вместо customer
, а переменные начинаются с нижнего регистраследовательно, CustomerList
должно быть customerList
.Методы могут избегать части return
и иметь имена с get
Кроме того, методы поиска должны лучше возвращать найденное значение, а не печатать его, поэтому ваша окончательная версия может выглядеть так:
public Customer searchCustomer( String familyName ) {
for ( Customer current : customerList ) {
if ( current.getFamilyName().equalsIgnoreCase( familyName ) ) {
return current;
}
}
return null;
}