我写这段代码是为了打印出一个名字和分数的列表,并存储哪个名字和分数有最高和最低的分数。代码中寻找高分的部分起作用。然而,存储低分数的部分会被较高的分数覆盖。我似乎搞不懂为什么会发生这种事。
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();
}
}发布于 2015-11-25 16:49:52
正如resueman在评论中所说的那样,问题是在低if语句中有一个;
if (StdList[z].getTot() < scoreLow);这将结束if语句,下面设置较低分数的代码将始终在不同的范围块中执行。
https://stackoverflow.com/questions/33921997
复制相似问题