Illustration of Nested loops:
Running the script shows the output:
The variable rows identifies the number of rows to print, and the variable columns identifies how many *'s to print in each row. There are 2 loop variables: i is the loop variable for the rows and j is the loop variable for columns. As the number of rows and columns are well-known, the for loops are used. There is one for loop to loop over the rows, and the other to print the needed number of *'s. The values of the loop variables are not used within the loops, but are used easily to iterate the right number of times. The first for loop identifies that the action will be repeated rows times. The action of this loop is to print *'s and then the newline character. Particularly, the action is to loop to print the columns *'s across on one line. The newline character is then printed after all five stars to move the cursor down for the next line.
The first for loop is known as the outer loop; the second for loop is known as the inner loop. Therefore, the outer loop is over the rows, and the inner loop over the columns. The outer loop should be over the rows as the program is printing a certain number of rows of output. For each row, a loop is essential to print the needed number of *'s; this is the inner for loop.
When this script is executed, initially the outer loop variable i is initialized to 1.And then action is executed. The action contains of the inner loop, and printing the newline character. Therefore, while the outer loop variable has value 1, the inner loop variable j iterates through its all values. As the value of columns is 5, the inner loop will print a * 5 times. Then, the newline character is printed and the outer loop variable i is incremented to 2. The action of outer loop is then executed once again, means that the inner loop will print five *'s, and then the newline character will be printed. This persists, and in all, the action of the outer loop will be executed rows times.
Note that the action of the outer loop consists of the two statements (that is the for loop and an fprintf statement). The action of the inner loop, though, is only a single statement.
The fprintf statement to print the newline character should be separate from the other fprintf statement which prints the *. If we simply had
As the action of inner loop, this would print a long column of 15 *'s, but not a box.