0

これは私が取り組んでいる宿題です。質問する前に、コードを探しているわけではありません。どこが間違っているのかを理解するための支援が欲しいだけです。

この課題の目的は、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 です。

ありがとう

4

1 に答える 1

0

value各ループで、整数を新しい整数で上書きします。

arrayTimes[i%4000] = arrayValue;

動作するはずです。

valueまたは、ループの外側で整数を定義します

于 2012-11-06T23:54:11.300 に答える