我写了这段代码来打印出一个名单和分数列表,并存储哪个名称和分数具有最高和最低分数。寻找高分的代码部分有效。但是,存储低分的部分会被更高的分数覆盖。我似乎无法弄清楚为什么会这样。
for (int z = 0; z < studentCount;z++)
{
System.out.print(StdList[z].getName()+ "\t\t\t" + StdList[z].getScore1() + "\t " + StdList[z].getScore2() + "\t " + StdList[z].getScore3() + "\t " + StdList[z].getTot()+"\n");
ave3 = ave3 + StdList[z].getTot();
if (StdList[z].getTot() > scoreHigh)
{
nameHigh = StdList[z].getName();
scoreHigh = StdList[z].getTot();
}
if (StdList[z].getTot() < scoreLow);
{
nameLow = StdList[z].getName();
scoreLow = StdList[z].getTot();
}
}
答案 0 :(得分:1)
正如resueman在评论中所说,问题是你的低if语句中有;
if (StdList[z].getTot() < scoreLow);
这将结束if语句和下面的代码设置较低分数将始终只在不同的范围块中执行