0
BowlingTeamDemo2
类中的最后一个for循环在第一次迭代中将x
增量为4
的值。 Stumped ...该程序将自动填写名称而不是使用扫描仪,仅用于测试目的。在最后一个循环的内循环之前和之后添加了变量x
的打印输出以测试x
的值。在内循环之前,值为0
,内循环启动后,值为4
。 该循环正确输出组的名称,但在尝试访问BowlingTeam
类的getMember()
方法时失败。这是一个例子,而不是一个练习。Java变量在for循环开始时增加越界
我得到的错误是这样的:在线程
异常 “主要” java.lang.ArrayIndexOutOfBoundsException:4 在BowlingTeam.getMember(BowlingTeam.java:21)在 BowlingTeamDemo2.main(BowlingTeamDemo2。 Java的:41)
public class BowlingTeam{
private String teamName;
private String[] members = new String[4];
public void setTeamName(String team){
teamName = team;
}
public String getTeamName(){
return teamName;
}
public void setMember(int number, String name){
members[number] = name;
}
public String getMember(int number){
// We have an issue here!!!!!!
return members[number];
}
}
import java.util.*;
public class BowlingTeamDemo2{
public static void main(String[] args){
String name;
final int NUM_TEAMS = 4;
final int NUM_TEAM_MEMBERS = 4;
int x;
int y;
BowlingTeam[] teams = new BowlingTeam[NUM_TEAMS];
Scanner input = new Scanner(System.in);
for(y = 0; y < NUM_TEAMS; ++y){
teams[y] = new BowlingTeam();
System.out.println("Enter team name >> ");
name = "Teams";
teams[y].setTeamName(name);
for(x = 0; x < NUM_TEAM_MEMBERS; ++x){
System.out.println("Enter team members name >> ");
name = "CoolName";
teams[y].setMember(x, name);
}
}
x = 0;
y = 0;
for(y = 0; y < NUM_TEAMS; ++y){
System.out.println(x);
for(x = 0; x < NUM_TEAM_MEMBERS; ++x);{
System.out.println(x);
System.out.println("\nMembers of team " +
teams[y].getTeamName());
// We have an issue here!!!!!!
System.out.print(teams[y].getMember(x) + " ");
}
}
System.out.println();
}
}
Typo。 'for(x = 0; x
废话,谢谢。 –
@JustaGuy每个人都会遇到这种情况,别担心!顺便说一下,Stack Overflow上的“Holy crap”按钮是[delete] :-) – dasblinkenlight