...
Both, Java and Python allow to use one loop inside another loop. Following section shows few examples to illustrate the concept.
...
Nested While loops
The following program uses a nested for loop to find the prime numbers from 2 to 100:
...
|
|
Nested for loops
You can often use for-loops to make code easier to read. The following code with nested for-loops prints...
...
You will find out that the control enters the first for loop and the value of the variable number
is initialized as 0. The first print statement is printed, and then control enters the second for loop, where the value of the variable another_number
is initialized to 0
. The first print statement in the second for loop is printed once.
Now, the control returns to the inner for loop once again and the value of another_number
is again initialized to the next integer followed by printing the statement inside the print()
function.
The aforementioned process continues until the control has traversed through the end of the range()
function, which is 5 in this case, and then the control returns back to the outermost loop, initializes the variable number
to the next integer, prints the statement inside the print()
function, visits the inner loop and then repeats all of the above steps until the range()
function is traversed.
This journey of the control traveling from the outermost loop, traversing of the inner loop and then back again to the outer for loop continues until the control has covered the entire range, which is 3 times in your case.
Additional example
Consider the timetable that contains seven days, and each day contains 24 time slots. Each time slot is a string, which is empty if there is nothing scheduled for that slot. How can we iterate over all the time slots and print out all our scheduled events?
|
|
Note that we have two for
loops – the inner loop will be executed once for every step in the outer loop’s iteration. Also note that we are using the enumerate
function when iterating over the days – because we need both the index of each time slot (so that we can print the hour) and the contents of that slot.
You may have noticed that we look up the name of the weekday once for every iteration of the inner loop – but the name only changes once for every iteration of the outer loop. We can make our loop a little more efficient by moving this lookup out of the inner loop, so that we only perform it seven times and not 168 times!
|
|
This doesn’t make much difference when you are looking up a value in a short tuple, but it could make a big difference if it were an expensive, time-consuming calculation and you were iterating over hundreds or thousands of values.