Java赋值:Forloop不会返回到我的while循环中,并且给出了一个空指针错误
在我的作业的这个片段中,我有两个类型为member和account的数组。它们通过成员和成员帐户创建中提供的ssn绑定在一起。我的问题是,在对数组进行搜索后,我会得到一个错误,如: 我创建了一个会员,ssn 1111名称:John Doe州:UT账户:123余额:1000Java赋值: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)
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。