Проверка наличия имени в списке участников
Итак, список работает, но проблема в контролере. Вот ситуация: есть список имен участников, сначала пользователь вводит имя. во-вторых, программа проверит, есть ли имя в списке. Если имя находится в списке, на нем будет отображаться "ОК". Если имя отсутствует в списке, на нем будет отображаться "ЧЛЕН НЕ СУЩЕСТВУЕТ". Моя проблема в том, что средство проверки ищет имя, но если первый член уже не равен имени, введенному пользователем, будет отображаться "Член не существует", и программа просто прекращает поиск.
например:
Список членов
Майк
альберт
Фред
Вход: майк
Выход: OK
но если
Вход: Альберт
Вывод: член не существует
вот мой код до сих пор.
class Node
{
protected String info;
protected Node next;
public Node(String value)
{
info = value;
next = null;
}
}
class LinkedList
{
private Node head;
private Node head1;
private Node head2;
private int count;
public LinkedList()
{
head = null;
count = 0;
}
public void checker(String name)
{
for(Node cur = head; cur != null; cur = cur.next)
{
if(cur.info.equals(name))
{
System.out.print("OK ");
return;
}
else
{
System.out.print("member does not exist");
}
}
}
Это не весь код, но моя проблема - в основном проверка
2 ответа
В первой итерации цикла for вы проверяете, равно ли значение имени. в противном случае "Участник не существует"
Вы должны закончить цикл, и тогда только вы можете напечатать член не существует.
for(Node cur = head; cur != null; cur = cur.next)
{
if(cur.info.equals(name))
{
System.out.print("OK ");
return;
}
}
System.out.print("member does not exist");
это правильный путь.
Вы могли бы сделать что-то простое, как:
int nameExist;
for(Node cur = head; cur != null; cur = cur.next)
{
if(cur.info.equals(name))
{
nameExist++;
}
}
if(nameExist>0){
System.out.print("ok");
}
else{
System.out.print("member does not exist");
}