我基本上需要創建一個完成基本總和的函數(如 x += y)。我的限制是該函數實際上不能將任何內容作為輸入,并且它需要通過 for 循環來跟蹤內容。我已經編寫了一個嘗試(它只是較大任務的一小部分),但我的似乎在每次循環時都會重置;它只輸出 value() 等于的任何值,并且在循環的迭代之間不跟蹤自身。我重寫了一些東西來取出不需要的東西,因為沒有它會有相當多的谷殼。我的函數引用了一個 value() 函數,但這對我的問題并不重要;只知道它檢查迭代之間隨機變化的值,并將該值作為雙精度值返回。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?,F在,它只是輸出從該循環中獲得的任何值。此外,理想情況下,我不希望將 timer1 的聲明移到循環之外作為解決方案,因為這將需要我重新編碼相當多的其他內容以適應。如果這是唯一的方法,那很好,但如果有不同的解決方案,我會很高興聽到它們。感謝您的時間!
1 回答

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
理想情況下,我不想將 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);
否則,是的,這是理想的解決方案,因為沒有它,您將重置計時器。
添加回答
舉報
0/150
提交
取消