Nested for loops
On the previous page, we saw how to create a for loop in Java.
This is generally where a single variable cycles over a range of values.
Very often, it's useful to cycle through combinations of two or more variables.
For example, we printed out a single times table, but what if we wanted to print out
all the times tables, say, between 2 and 12?
One common way to do this is to use a nested loop. That's just a fancy way of
saying one loop inside another. So we start with one loop, which goes through
all the "times table numbers" in turn that we want to print (in this case, we said
between 2 and 12):
for (int timesTableNo = 2; timesTableNo <= 12; timesTableNo++) {
}
Then, inside this loop, we place our other loop that
printed the 7 times table. Only this time, we don't want it to print the 7 times
table each time— we want it to print the timesTableNo times
table each time. So the program looks like this:
for (int timesTableNo = 2; timesTableNo <= 12; timesTableNo++) {
System.out.println("The " + timesTableNo + " times table:");
for (int n = 1; n <= 12; n++) {
int result = n * timesTableNo;
System.out.println(timesTableNo + " times " + n + " equals " + n);
}
}
Now, the lines in bold will be run for all combinations of
times table number and n. Notice that each times table is also
preceded by a "heading" that announces it as "The 2 times table" etc.
The line to do that sits only inside the timesTableNo loop,
so it only gets run once for every times table, not once for every combination.
Try running the program and confirming that it prints all the times tables,
for every value between 1 and 12.
Names: inner and outer loop
Because the loop over n is inside the loop over timesTableNo,
the n loop would often be called the inner loop, and the
timesTableNo loop the outer loop.
Next...
On the next page, we look at if statements, which
allow our program to take decisions or check conditions.
If you enjoy this Java programming article, please share with friends and colleagues. Follow the author on Twitter for the latest news and rants.
Editorial page content written by Neil Coffey. Copyright © Javamex UK 2021. All rights reserved.