0

3 番目の for ループについて質問があります。どのように機能しますか?

public void outputBarChart()
{
    System.out.println("Grade Distribution: \n");

    int frequency[] = new int[11];

    for(int oneGrade : grade)
    {
        ++frequency[oneGrade / 10];
    }

   for (int count = 0; count < frequency.length; count++)
   {
       if (count == 10) {
           System.out.println("100");
       }
       else {
           System.out.printf("%02d-%02d: ",
                   count*10, count*10 + 9);
       }

        //the third for loop here !
        for (int star = 0; star < frequency[count]; star++){
            System.out.print("*");
        }
        System.out.println();

   }
}

問題は、星をどのように出力するかの仕組みがわからないことです。

4

2 に答える 2

1

それでは、コードを見てみましょう。

3 番目の for ループを含む 2 番目の for ループは、frequencey の長さであるため、11 回ループします。簡単でした。

ここで、3 番目の for ループfrequency[count]が何度も繰り返されます。この値はわかりませんが、整数であることはわかっています。したがって、3 番目のループで実行されるのは、単純にスターfrequency[count]時間を出力することです。その後、3 番目のループが終了し、2 番目のループで改行が出力されます。

System.out.println("*" * frequency[count]);
于 2012-12-27T22:24:07.530 に答える
1

ループは変数を取り、star値に達するまでループしてインクリメントしますfrequency[count]。したがって、 に格納されている値と同じ回数だけループが実行されfrequency[count]ます。

ループの反復ごとに星が出力されます。最後に空白行を出力します。

その結果、星の数がfrequency[count]1 行に表示されます。

于 2012-12-27T22:20:22.050 に答える