如果声明行为很奇怪

时间:2015-11-25 16:45:03

标签: java arrays io

我写了这段代码来打印出一个名单和分数列表,并存储哪个名称和分数具有最高和最低分数。寻找高分的代码部分有效。但是,存储低分的部分会被更高的分数覆盖。我似乎无法弄清楚为什么会这样。

        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();
        }
    }

1 个答案:

答案 0 :(得分:1)

正如resueman在评论中所说,问题是你的低if语句中有;

if (StdList[z].getTot() < scoreLow);

这将结束if语句和下面的代码设置较低分数将始终只在不同的范围块中执行