Section 7.12 Worked Example: Nested Loops
Subgoals for Evaluating a Loop.
-
Identify loop parts
- Determine start condition
- Determine update condition
- Determine termination condition
- Determine body that is repeated
-
Trace the loop
- For every iteration of loop, write down values
Subsection 7.12.1
You can watch this video or read through the content below it.
Problem: Given the following code, what is the output?
int i = 0, j = 0, m = 8, n = 5;
while (i < n)
{
j = 0;
while (j < m)
{
System.out.print("*");
j++;
}
System.out.println();
i++;
}
Subsection 7.12.2 SG1: Diagram which statements go together.
Subsection 7.12.3 SG2: Define and initialize variables
For now, we begin with the variables that control the outer loop.
Start:
i = 0, n = 5
End:
i >= 5
Subsection 7.12.4 SG3: Trace the loop
Think of an analog clock:
Second hand goes completely around before minute hand moves
Just like inner loop:
Inner loop must finish before outer loop increments once
Looking at ONLY the outer loop: <NL> is a new line
Now Repeat for inner loop
Subsection 7.12.5 SG1: Diagram which statements go together.
Subsection 7.12.6 SG2: Define and initialize variables
Start:
j = 0, m = 8
End:
j >= 8
Subsection 7.12.7 SG3: Trace the loop
Looking at Only the inner loop:
For each iteration of the inner loop, a single star is added to the current output on the same line. For each iteration of the outer loop, the current line is ended and a new line begins. The output looks like:
Note that outer loop goes 5 times,
Inner loop goes 8 times (for each outer loop)
Answer.
The final output will be 5 lines of 8 asterisks (*).
Practice Pages.
You have attempted of activities on this page.