-1

在我的作业的这个片段中,我有两个成员和帐户类型的数组。它们通过在成员和成员帐户创建时提供的 ssn 联系在一起。我的问题是,在搜索完数组后,我收到一个错误,例如:我创建了一个 ssn 1111 名称的成员: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

好吧,这就是有效的方法,数组中的空字符引起了问题,并返回了数组中的最后一个空字符,所以我通过放置 x = memberAcc.length +1; 来强制数组在每个 if/else 语句之后中断。和 y = newMember.length +1;去做这个。导致整个数组被检查,然后被强制破坏,让我可以返回到我的菜单 while 循环。

于 2013-04-10T19:19:48.540 回答