Я сделал простую программу адресной книги, используя Arraylist (программа не сохраняет записи после завершения), и когда я ищу записи для записи, которая была не первой, в моих сообщениях об ошибках появляется информация о записи.Я понимаю, что это происходит из-за того, что использовалось условие if, а ошибка - в другом.Но я не знаю, как заставить программу работать по-другому.Я хочу иметь возможность искать записи по определенному имени (String), а затем отображать контактные данные этих лиц, а если это имя не было введено, отображать «Этот человек не указан, попробуйте другое».Я очень плохо знаком с программированием и обладаю очень ограниченными знаниями, и я знаю, что мой код выглядит плохо сейчас, но я хотел бы заставить его работать правильно, прежде чем он будет выглядеть хорошо.
while(!search){
if(listSize == 0){
break;//does not allow search if no names have been entered.
}
System.out.print("Please enter the first name to search for or q to quit: ");
String searchName = in.next().trim().toUpperCase();
for(AddressBook a: myBook){
if(searchName.compareTo("Q") == 0){
search = true;//allows user to exit search
}
else if(a.getName().compareTo(searchName) == 0){
System.out.println("that contact info is: ");
System.out.println("name: " + a.getFullName());
System.out.println("phone number: " + a.getPhoneNumber());
System.out.println("email: " + a.getEmail());
System.out.println("address: " + a.getAddress());
search = true;
break;
}
else
System.out.println("That name is not listed please try another");
}
}
Это часть поискамоего кода, проблема, с которой я столкнулся, связана с последним оператором if / else.Я знаю, что когда я ищу имя, и оно не появляется в первом элементе, программа переходит к другому, потому что условие else if ложно, и это то, что мне нужно исправить.