计数变量永不重置

时间:2018-10-13 00:48:10

标签: java loops count

我有一个用于创建平均值的ArrayList以便在图形上绘制的函数,

public void setupAverageEntries(int everyNthTimeStamp){
    this.avgEntries = new ArrayList<GraphEntry>();

    for (int i = 0; i < data.getTimeStampData().size() - everyNthTimeStamp; i += everyNthTimeStamp) {

        int avgVolume = new Integer(0);
        int total = new Integer(0);

        for (int j = 0; j < i + everyNthTimeStamp; j ++) {
            total += data.getVolumeData().get(j);
        }

        avgVolume = total / everyNthTimeStamp; // get the average volume over a certain amount of time stamps

        System.out.println("TOTAL " + total);
        System.out.println("AVG " + avgVolume);

        Point p = new Point(i + everyNthTimeStamp / 2, avgVolume); // plot a point with the average volume and in the middle of the NthTimeStamp
        GraphEntry avgE = new GraphEntry(p, avgVolume, i + everyNthTimeStamp / 2);
        this.avgEntries.add(avgE);
    }
}

我本以为在第一个循环中将“总计”初始化为0意味着它将在第二个循环完成后使用它计算“ avgVolume”来重置,但是它产生的输出告诉我,总计仅曾经增加。我认为这可能是一个参考问题,但是即使在声明了“ total”和“ avgVolume”为新值之后,total仍然永远不会重置。

请帮助!是范围相关的问题吗?希望我不只是一个盲人蝙蝠...

1 个答案:

答案 0 :(得分:0)

我认为它已正确重置,但是在内部循环中,您总是对相同的数据进行迭代,在内部循环的每次运行中都比以前循环得更远。因此,总和总是比上一次迭代大。

我没有进一步分析您的代码,但我想内部循环应该从i而不是0开始。