在 for 循环中工作正常,但手动操作时,会出现 NullPointerException 错误



在我的for循环程序中,它完美地工作,没有错误,但是当我删除for循环并手动增加它时,因为我只想输入一次并存储在数组中,有一个NullPointerException。对我来说它看起来是一样的,唯一的区别是它不循环,而是手动增加它。我该怎么修理它?

public class Javaapp {
public static void main(String[] args) {

Team competitive = new Team ("Cloud9", 5, 14, 18);
Member [] member = new Member [5];
Scanner input = new Scanner(System.in);
int answer = input.nextInt();

for(int i=0; i<competitive.maxMember; i++){ 
System.out.printf("Name:");
String tmpName = input.next();
System.out.printf("Age:");
int tmpAge = input.nextInt();
member[i] = new Member(tmpName, tmpAge);   
}
for(Member m: member){
if (competitive.checkQualification(m) == true){ 
competitive.addMember(m);
System.out.println("You're officially part of the team");
}
else if (competitive.checkQualification(m) == false)
System.out.println("You did not meet the requirements");
}
}
}

问题在这个循环

for(Member m: member){
if (competitive.checkQualification(m) == true){ // The error points in here where it says NullExceptionerror
competitive.addMember(m);
System.out.println("You're officially part of the team");
}
else if (competitive.checkQualification(m) == false)
System.out.println("You did not meet the requirements");
}

因为你没有完成所有成员的输入,当你尝试迭代这个循环时,它会在第一次工作,因为数组中只有一个成员。但是下一次,由于在i=1处没有成员,它将在传递给checkQualification方法时给出NullPointerException。而不是每次循环,只需将成员[i]传递给该函数,然后在i的增量值之后。

相关内容

最新更新