我对第三个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();
}
}
问题是我不知道如何打印星星的机制。
答案 0 :(得分:1)
循环将采用变量star
并循环并递增,直到达到frequency[count]
的值。因此它将运行循环的次数与frequency[count]
中存储的值相同。
每次循环迭代它会打印一个星。最后它会打印一个空白行。
结果是在一行上将星号打印为frequency[count]
。
答案 1 :(得分:1)
那么让我们来看看代码:
包含第三个for循环的第二个for循环将循环11次,因为频率的长度。好的,这很容易。
现在第三个for循环迭代frequency[count]
次,我们不知道这个值,但我们知道它是一个整数。那么第三个循环将做的只是打印一个星frequency[count]
次。之后我们完成了第三个循环,并且第二个循环打印了换行符。
System.out.println("*" * frequency[count]);