Nested Loops
Introduction
Nested loops are just one loop working inside of another loop. A good way to start learning about nested loops is to look at an example using matrices.
Matrix Example
If you have never encountered a matrix before you can think of it as rows and columns of numbers. Or you can think of a matrix as simply a table of rows and columns like so:
A simple matrix with two rows and three columns. 0 1 2 3 4 5
Now suppose you wanted to print that matrix out by using loops. An easy solution would be to use a For loop nested in another For loop.
int row, column; int count = 0; for( row = 0 ; row < 2 ; row++ ) //outer For loop begins { for( column = 0 ; column < 3 ; column++ ) //inner (nested) For loop begins { System.out.print(count); count++; } //inner (nested) For loop ends System.out.println(); } //outer For loop ends
The best way to describe what is happening here is to break this code up into the two loops.
Outer Loop
for( row = 0 ; row < 2 ; row++ ) { ... }
We already know that a For loop will perform the same task until its test condition evaluates to false. In this example, the code inside the loop will execute twice. This means that whatever is inside this loop will be performed twice.
Inner Loop
for( column = 0 ; column < 3 ; column++ ) { System.out.print(count); count++; } System.out.println();
Here is a simple For loop that prints out the value of count, updates count and finishes by adding a new line once the loop's test condition evaluates to false. This loop will run three times. It will print:
012
Putting it All Together
- The outer loop will perform whatever is inside two times.
- The contents of the outer loop is another loop.
- The inner loop prints out the value of count in sets of three.
- Therefore the inner loop will be executed two times with a total of 6 iterations (3 iterations per execution).
Other Uses
- When you learn about multi-dimensional arrays, double For loops will come in handy (see Matrix Example).
- Different types of loops can be mixed and matched together to create nested loops.
Example:
while(...) { for(...) { for(...) { ... } } while(...) { ... } }
Warnings
Quite often when using for loops we get used to using the variable i as a counter. When you have nested For loops you cannot use the same control variable for both loops. You must have separate control variables for each nested loop so that each loop does not control the other one.
The following is a common error:
int i; int j; for( i = 0 ; i < 10 ; i++ ) { for( j = 0 ; j < 10 ; i++ ) //notice the i++ should be j++, this is just one spot a mistake may be made { ..(some code) } }
Programming Questions
Program 1 Create a program that will print out ascii art in the shape of an X. The program will prompt the user for input in the form of a number of at least size 3. For example if the user typed the number 5 your result would look like:
* * * * * * * * *
Previous Page: For Loops | Next Page: Scope |