For each occurrence of the outer row
loop, the inner col
loop will print 8 stars, terminated by the newline character.
The action of nested loops can be analyzed using a chart:
row
|
col
|
1 |
1 to 8 |
2 |
1 to 8 |
3 |
1 to 8 |
4 |
1 to 8 |
Suppose we wanted to write a method that prints out the following 7-line pattern of stars:
*******
******
*****
****
***
**
*
Here is an analysis of the problem, line-by-line.
Line # |
# spaces |
# stars |
|
|
|
1 |
0 |
7 |
2 |
1 |
6 |
3 |
2 |
5 |
... |
|
|
7 |
6 |
1 |
L |
L - 1 |
N - L + 1 |
For a picture of N
lines, each line L
will have (L-1)
spaces and (N-L+1)
stars.
- Here is a pseudocode version of the method.
A method to print a pattern of stars:
Print N
lines of stars, each Line L
consists of
(L-1
) spaces
(N-L+1
) stars
a line feed
- Here is the code version of the method.
void picture (int n){
int line, spaces, stars, loop;
for (line = 1; line <= n; line++){
spaces = line - 1;
for (loop = 1; loop <= spaces; loop++){
System.out.print (" "); // print a blank space
}
stars = n - line + 1;
for (loop = 1; loop <= stars; loop++){
System.out.print ("*");
}
System.out.println();
}
}