第三个for循环如何解决?

时间:2012-12-27 22:13:06

标签: java

我对第三个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();

   }
}

问题是我不知道如何打印星星的机制。

2 个答案:

答案 0 :(得分:1)

循环将采用变量star并循环并递增,直到达到frequency[count]的值。因此它将运行循环的次数与frequency[count]中存储的值相同。

每次循环迭代它会打印一个星。最后它会打印一个空白行。

结果是在一行上将星号打印为frequency[count]

答案 1 :(得分:1)

那么让我们来看看代码:

包含第三个for循环的第二个for循环将循环11次,因为频率的长度。好的,这很容易。

现在第三个for循环迭代frequency[count]次,我们不知道这个值,但我们知道它是一个整数。那么第三个循环将做的只是打印一个星frequency[count]次。之后我们完成了第三个循环,并且第二个循环打印了换行符。

System.out.println("*" * frequency[count]);