Nesting Loops

Nesting Loops

All the loops support nesting concepts which means you can put one loop inside another similar one or different loops. This nesting can go up to an unlimited number of times based on your requirement.

Here is an example of nesting while loop. The other loops can be nested based on the programming requirement in a similar way −

Nesting while Loops

It is possible to use a while loop as part of the body of another while loop.

Syntax

while command1 ; # this is loop1, the outer loop

do

   Statement(s) to be executed if command1 is true

   while command2 ; # this is loop2, the inner loop

   do

      Statement(s) to be executed if command2 is true

   done

   Statement(s) to be executed if command1 is true

done

Example

Here is a simple example of loop nesting. Let’s add another countdown loop inside the loop that you used to count to nine −

#!/bin/sh

a=0

while [ “$a” -lt 10 ]    # this is loop1

do

   b=”$a”

   while [ “$b” -ge 0 ]  # this is loop2

   do

      echo -n “$b “

      b=`expr $b – 1`

   done

   echo

   a=`expr $a + 1`

done

This will produce the following result. It is important to note how echo -n works here. Here -n option lets echo avoid printing a new line character.

0

1 0

2 1 0

3 2 1 0

4 3 2 1 0

5 4 3 2 1 0

6 5 4 3 2 1 0

7 6 5 4 3 2 1 0

8 7 6 5 4 3 2 1 0

9 8 7 6 5 4 3 2 1 0

4 thoughts on “Nesting Loops”

Leave a Comment