如何使函数保持在main方法内部?

时间:2019-04-24 23:47:38

标签: java

我基本上需要创建一个完成基本和的函数(例如x + = y)。我的局限性在于该函数实际上不能将任何东西作为输入,并且它需要通过for循环来跟踪内容。我已经对此进行了编码(这只是较大任务的一小部分),但是我的似乎在每次循环时都会重置;它只会输出任何value()相等的值,并且不会在循环的迭代之间跟踪自身。我重写了一些东西以取出不需要的东西,因为没有它,将会有很多糠cha。我的函数引用了一个value()函数,但这对我的问题并不重要。只要知道它会检查在迭代之间随机更改的值,然后将该值返回为double。 BenchmarkTimer只是整个功能系列中的一类。

public class BenchmarkTimer{ 

    public double total;

    public double total(){
        total += value();
        return total;
    }
    public static void main(String[] args) {
        int n = Integer.parseInt(args[0]);
        for (int l = 1; l <= 4; l++){
            BenchmarkTimer timer1 = new BenchmarkTimer();
            timer1.value();
            System.out.println(timer1.total());
        }
    }

}

我想要实现的是,timer1.total应该返回所有迭代中加总的值。如果获得的第一个值为2,则应输出2。第二次给出的值为3,我希望它输出5。

现在,它只是输出从该循环获得的任何值。另外,理想情况下,我不想将timer1的声明移出循环之外成为解决方案,因为这将需要我重新编码很多其他内容以适应问题。如果这是唯一的方法,那很好,但是如果有其他解决方案,我将很高兴听到他们的声音。谢谢您的时间!

1 个答案:

答案 0 :(得分:1)

  

理想情况下,我不想将timer1的声明移出循环作为解决方案

那么,如果不这样做,则可以创建一个完全独立的变量

    int n = Integer.parseInt(args[0]);
    double d = 0;
    for (int l = 1; l <= 4; l++){
        BenchmarkTimer timer1 = new BenchmarkTimer();
        d += timer1.value();
        System.out.println(timer1.total());
    }
    System.out.println(d);

否则,是的,这是理想的解决方案,因为如果没有此设置,那么您将重置计时器。