Die letzte for-Schleife der Klasse BowlingTeamDemo2
erhöht innerhalb der ersten Iteration x
auf den Wert 4
. Stumped ... Das Programm füllt die Namen automatisch aus, anstatt den Scanner zu benutzen, nur zu Testzwecken. Ich habe einen Ausdruck der Variablen x
vor und nach der inneren Schleife in der letzten for-Schleife hinzugefügt, um den Wert x
zu testen. Vor der inneren Schleife ist der Wert 0
, nach dem Start der inneren Schleife ist der Wert 4
. Die Schleife gibt den Namen des Teams korrekt aus, schlägt jedoch fehl, wenn versucht wird, auf die getMember()
-Methode von der BowlingTeam
-Klasse zuzugreifen. Dies war ein Beispiel, keine Übung.Die Java-Variable wird zu Beginn der for-Schleife außerhalb der Grenzen inkrementiert.
Der Fehler I erhalten, ist dies:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 bei BowlingTeam.getMember (BowlingTeam.java:21) bei 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. 'für (x = 0; x
Heiliger Mist, danke. –
@JustaGuy Das passiert jedem, keine Sorge! By the way, der "Holy Mist" Button auf Stack Overflow ist [löschen] :-) – dasblinkenlight