2012-11-06 22 views
0

這是我正在處理的一項家庭作業。在我問之前,我沒有在尋找一段代碼。我想要一些幫助來確定我可能出錯的地方。在java數組中存儲時間間隔

作業的目標是運行循環100,000次的小程序。有25個間隔,每個間隔的時間需要存儲在一個數組中。到目前爲止,我可以讓小程序運行並正確打印,但數組僅存儲第一個值。我在想,有一個格式問題或小問題使我無法解決這個問題,但我已經搜索了一段時間,我似乎無法弄清楚這一點。

我的代碼如下:

public class Line1TimedTest extends JApplet 
    { 
     long start, elapsed, arrayValue; 
     int x1=50, y1=50, x2=500, y2=500, limit=100000, value; 
     DecimalFormat fmt; 


     public void init() 
     { 
    start = System.nanoTime(); 
    fmt = new DecimalFormat("###,###,###,###,###"); 
    } 



    public void paint (Graphics g) 
    { 
     int x, y, temp; 
     float m, b; 
      long [] arrayTimes = new long [25]; 

     for (int i = 1; i <=limit; i++) 
     { 
      m = (float)(y2-y1)/(x2-x1); 
      b = y1 - m * x1; 
      int value = 0; 

      for (x = x1; x <= x2; x++) 
      { 
       y = (int)(m * x + b + 0.5); 
       g.drawRect(x,y,0,0); 

      } 
      if (i%4000==0) 
      { 
       elapsed = System.nanoTime() - start; 
       arrayValue = elapsed; 
       arrayTimes[value] = arrayValue; 
       System.out.println(fmt.format(i) + " lines drawn"); 
       value++; 
      } 


     } 


    //insert print statement 


    } 

} 

的程序編譯和沒有錯誤運行,但陣列只被用一個值在索引0填充所有其他值是0。如果任何人可以看看,看看我可能會錯過我真的很感激它。

感謝

回答

0

在每個循環中,您overwrit整數value有一個新的。

arrayTimes[i%4000] = arrayValue; 

應該工作。

或者定義整數value

+0

哇外面,現在我感覺非常糟糕。我最初宣佈了兩次價值,我認爲我錯誤地刪除了它們。感謝您爲我指出這一點! – User2