-1

私の割り当てのこのスニペットには、タイプ member と account の 2 つの配列があります。それらは、メンバーとメンバー アカウントの作成の両方で指定される ssn によって結び付けられます。私の問題は、配列が検索された後、次のようなエラーが表示されることです: ive created a member with ssn 1111 name: John Doe state:UT Account:123 balance:1000

 AccountNumber: 123Exception in thread "main" java.lang.NullPointerException
    at Banker.main(Banker.java:116)

私がする必要があるのは、以下の情報を印刷し、ループが入力を待っている間にメニューに戻ることです。

//make a deposit
else if(iMenu==2)
{
    myScan.nextLine();
    System.out.println("Enter Account Number:");
    accountnumber=myScan.nextInt();
    System.out.println("Enter SSN:");
    ssn=myScan.nextInt();

    for(int x=0;x<memberAcc.length;x++)
    {
        if(memberAcc[x].getAccountNumber()==accountnumber && memberAcc[x].getSSN()==ssn  )
        {
            System.out.println("Enter Deposit Ammount: ");
            deposit=myScan.nextDouble();
            memberAcc[x].MakeDeposit(deposit);
            System.out.print("\nYour Balance is: " + memberAcc[x].getAccountBalance() + "\nAccountNumber: " + memberAcc[x].getAccountNumber());
        }
    }
    for(int y=0;y<newMember.length;y++)
    {
        if( ssn==newMember[y].getSSN())
        {
            System.out.print("\nFirstName:"+newMember[y].getFirstName()+"\nLast Name: "+newMember[y].getLastName());
        }
        else
        {
            System.out.println("Error no Match!");// help
        }
    }//end for loop
}// end deposit
4

1 に答える 1

0

これでうまくいきました。配列内の null 文字が問題を引き起こし、配列内の最後の null を返していたので、x = memberAcc.length +1; を配置して、各 if/else ステートメントの後に配列を強制的に中断させました。そして y = newMember.length +1; これをする。配列全体をチェックして強制的に壊すことで、ループ中にメニューに戻ることができます。

于 2013-04-10T19:19:48.540 に答える