この方法は、それまでの文字列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=371208&siteId=1