방법은 그것에서 문자열 I 유형을 읽는되지 않는다

숀 맥아 보이 주심 :

나는 티켓 시스템을 제작하고있다. 사용자가 티켓을 검색 할 경우 그들은 이름을 입력합니다. 내가 그것을 입력하도록 사용자에게 요청할 때 작동하지 않습니다.

나는이 같은 방법을 호출하는 경우 : 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;
    }
}
아빈 드 쿠마 Avinash :

인한 문제의 존재 인 else break;경우, 첫 번째 반복 자체가 루프를 차단하는 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
        }
    }
}

의심 / 문제의 경우에 의견을 주시기 바랍니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=371206&siteId=1