Java赋值:Forloop不会返回到我的while循环中,并且给出了一个空指针错误

Java赋值:Forloop不会返回到我的while循环中,并且给出了一个空指针错误,java,loops,for-loop,while-loop,null-pointer,Java,Loops,For Loop,While Loop,Null Pointer,在我的作业的这个片段中,我有两个类型为member和account的数组。它们通过成员和成员帐户创建中提供的ssn绑定在一起。我的问题是,在对数组进行搜索后,我会得到一个错误,如: 我创建了一个会员,ssn 1111名称:John Doe州:UT账户:123余额:1000 AccountNumber: 123Exception in thread "main" java.lang.NullPointerException at Banker.main(Banker.java:116)

在我的作业的这个片段中,我有两个类型为member和account的数组。它们通过成员和成员帐户创建中提供的ssn绑定在一起。我的问题是,在对数组进行搜索后,我会得到一个错误,如: 我创建了一个会员,ssn 1111名称:John Doe州:UT账户:123余额: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
//存款
否则如果(iMenu==2)
{
myScan.nextLine();
System.out.println(“输入账号:”);
accountnumber=myScan.nextInt();
System.out.println(“输入SSN:”);
ssn=myScan.nextInt();

对于(int x=0;x好的,这就是工作原理,数组中的空字符导致了问题,并返回了数组中最后一个空字符,因此我在每个if/else语句之后,通过放置x=memberAcc.length+1;和y=newMember.length+1;来强制数组中断。导致检查整个数组,然后强制中断允许我在循环时返回菜单。

如果能知道代码段中的第116行是什么,那就太好了,因为异常来自该行。粘贴可执行代码,这样我们就知道发生了什么。第116行是System.out.println(“输入存款金额:”);
memberAcc[x]
可能为空。我怀疑您的NPE是否来自system.out.println。