Метод не читает строку, которую я набираю - PullRequest
0 голосов
/ 29 марта 2020

Я делаю систему тикетов. Если пользователь ищет билет, он вводит имя. Он не работает, когда я прошу пользователя ввести его.

Если я вызываю метод следующим образом: G1.displayTicket("John Blogs", LottoTickets); он работает!

Отображение определенного билета:

System.out.print("\nDo you wish to search for a particular ticket? ");
String certainTicketQ = in.next();
if(certainTicketQ.equalsIgnoreCase("Yes"))
{
    System.out.print("Name of the person you wish to search for: ");
    String name = in.next();
    G1.displayTicket(name, LottoTickets);   
}

Метод:

public void displayTicket(String name,Ticket[] LottoTickets)
{
    for(int i = 0; i<LottoTickets.length;i++)
    {
        if(name.equalsIgnoreCase(LottoTickets[i].getName())){
            System.out.println(LottoTickets[i]);
            break; //Breaks out of loop once ticket is found
        }else break;
    }
}

1 Ответ

0 голосов
/ 29 марта 2020

Проблема связана с наличием else break;, которое нарушает l oop в самой первой итерации, если LottoTickets[0] не равно name. Он вернет правильный результат только тогда, когда LottoTickets[0] будет равен name.

public void displayTicket(String name,Ticket[] LottoTickets) {
    for(int i = 0; i<LottoTickets.length;i++) {
        if(name.equalsIgnoreCase(LottoTickets[i].getName())) {
            System.out.println(LottoTickets[i]);
            break; //Breaks out of loop once ticket is found
        }else break;
    }
}

Просто удалите его, и ваш метод будет работать так, как задумано, то есть должно быть:

public void displayTicket(String name,Ticket[] LottoTickets) {
    for(int i = 0; i<LottoTickets.length;i++) {
        if(name.equalsIgnoreCase(LottoTickets[i].getName())) {
            System.out.println(LottoTickets[i]);
            break; //Breaks out of loop once ticket is found
        }
    }
}

Не стесняйтесь комментировать в случае каких-либо сомнений / проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...