La dernière boucle for de la classe BowlingTeamDemo2
incrémente x
à la valeur 4
dans la première itération. Stumped ... Le programme remplira automatiquement les noms au lieu d'utiliser le scanner, juste à des fins de test. J'ai ajouté une impression de la variable x
avant et après la boucle interne dans la dernière boucle pour tester la valeur de x
. Avant la boucle interne, la valeur est 0
, après le début de la boucle interne, la valeur est 4
. La boucle imprime correctement le nom de l'équipe, mais échoue lors de la tentative d'accès à la méthode getMember()
à partir de la classe BowlingTeam
. C'était un exemple, pas un exercice.La variable Java est incrémentée hors limites au début de la boucle for
L'erreur que je reçois est la suivante:
Exception dans le thread "principal" 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. 'pour (x = 0; x
Merde, merci. –
@JustaGuy Cela arrive à tout le monde, pas de soucis! En passant, le bouton "Holy merde" sur Stack Overflow est [delete] :-) – dasblinkenlight