我是Java初学者,这是我的第一篇文章.我找不到任何与我的问题完全相同的东西,虽然这篇文章看起来很相似: 为什么这个打印行命令执行两次?
但答案并没有帮助我解决它.
我知道这可能是一些愚蠢的事情,但我希望你们中的一个人可能能够向我指出为什么名为"匹配"的数组中的最后一个条目打印两次.
罗伯特,提前谢谢.
这是我的代码:
public String buildMatchList(Match[] matches)
{
fixtures = "";
int i = 0;
for ( i = 0; i < numMatches; i++)
{
if (matches[i] != null)
{
fixtures += String.format("\n%-10.10s %10.9s %15.14s", matches[i].getTeamA(), " Vs ", matches[i].getTeamB());
}
}
System.out.println(fixtures);
}
// -EDIT -
// numMatches set in this method
public void fillMatchArray(Team[] sortedTeams, int numTeams)
{
int homeTeam = 0;
int awayTeam = 0;
goalsA = 0;
goalsB = 0;
fixtures = "";
boolean played = false;
matches = new Match[MAX_NUM_GAMES];
for (homeTeam = 0; homeTeam < sortedTeams.length; homeTeam++)
for (awayTeam = homeTeam+1; awayTeam < sortedTeams.length; awayTeam++ )
{
String teamA = sortedTeams[homeTeam].getTeamName();
String teamB = sortedTeams[awayTeam].getTeamName();
matchFixtures = new Match(teamA, teamB, goalsA, goalsB, played);
{
fixtures += String.format("\n%-10.10s %10.9s %15.14s",
matchFixtures.getTeamA(), " Vs ", matchFixtures.getTeamB());
}
int i = 0;
matches[i] = matchFixtures;
numMatches++;
buildMatchList(matches);
}
}
Run Code Online (Sandbox Code Playgroud)
如果打印出两次,最可能的解释是最后两个条目是相同的.有一个常见的错误,你可以将一个可变对象添加到集合中两次,而你认为它们是不同的,但事实并非如此.
我建议您尝试逐步调试调试器中的代码,看看它在做什么?
这是踩过代码会有所帮助的地方.您每次都设置数组的第一个元素,因为我总是0
int i = 0;
matches[i] = matchFixtures;
numMatches++;
Run Code Online (Sandbox Code Playgroud)
改为
matches[numMatches++] = matchFixtures;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |