×

Nested Loops in C Programming Examples

A nested loop is generally used when we want to run a loop statement inside another loop statement. This kind of loop is also known as a “loop inside the loop”.

In the nested loop, first we provide an initialization statement. Then, the control evaluates the value of the first condition and checks whether the termination condition is true or false.

If the value is false, it will terminate the entire process and only perform the basic command. But if the value is true, it will continue to check the second condition. If it finds the second condition false, it will terminate the processing of the program of the second condition and move to the primary/first loop and perform it.

And, if the second condition results to true, control will execute the loop and termination condition repeatedly until the value of condition becomes false. Along with this, some increment or decrement statements are implemented after every loop execution.

As the second condition terminates, it goes back to the first condition, checks again, and repeats the entire execution process. The execution of termination condition can take place multiple times. According to the loop, C control performs the condition given at the end and produces the outcome. At last, it will display the output on the screen.

Now we are going to define the syntax of nested loop using for, while, and do-while loop.

Syntax of Nested For Loop:

for (initialization; termination condition; increment/decrement statement) {
      // program line of the first loop
   }
   // program line of the second loop
}

Syntax of Initiating Nested While Loop:

while(condition) 
{
// condition must be provided 
   while(condition) 
   { 
      // program line of the first loop
   }
   // program line of the second loop
}

Syntax of Initiating Nested Do-While Loop:

do
{
   do
   {     
      // program line of the first loop
   }
while(condition); //condition is given here
   // program line of the second loop
}
while(condition);

Syntax of Initiating Nested Mixed (Do-While, While, For) Loop:

do
{ while(condition) // condition should be provided
{   
 for (initialization; termination condition; increment/decrement condition) 
{
// program line of the first loop
 }
  // program line of the first while loop
 }
 // program line of second do-while loop
}
while(condition);

Example 01: Program of nested for loop:

#include <stdio.h>
#include <stdlib.h> /* it involves memory 
  allocation, process control, conversions */
#define ROW 3 // rows declaration
#define COL 3 // columns declaration
// Driver program code
int main ()
{
    int a, b;
    // Declaration of the matrix
    int matrix [ROW][COL] = 
{
{11, 12, 13},
{14, 15, 16},
{17, 18, 19} 
};
        printf("the provided matrix is \n");
        // loops implementation
        for (a = 0; a < ROW; b++) // (initialization statement; termination condition; increment/decrement statement)  
   {
        for (b = 0; b < COL; b++) // (initialization statement; termination condition; increment/decrement statement)  
            printf("%d ", matrix[a][b]); // printing matrix as an input
            printf("\n"); // next line initialization program code
   }
    return 0;
}

Output:

the provided matrix is 
11 12 13 
14 15 16 
17 18 19 

Example 02: Program of nested for loop:

#include<stdio.h>
#include<math.h>
int main ()
{
    int a, b, c; // declaring various variables without assigning values
    printf("Input a natural number up to which you want to print composite numbers :"); // taking input from the user
    scanf("%d", &c); // assigning value entered by the user to c
    for (a=2; a<=c; a++) // (initialization statement; termination condition; increment/decrement statement)  
    {
        for (b=2; b<=(int) pow(a,0.5); b++) // (initialization statement; termination condition; increment/decrement statement)  
        {
            if(a%b==0) // initializing if statement
            {
                printf("%d can be considered as a composite number \n", a); // printing the output
                break; // break statement to terminate “for” loop
            }    
        }
    }
    return 0;
}

Output:

Input a natural number up to which you want to print composite numbers :20
4 can be considered as a composite number
6 can be considered as a composite number
8 can be considered as a composite number
9 can be considered as a composite number
10 can be considered as a composite number
12 can be considered as a composite number
14 can be considered as a composite number
15 can be considered as a composite number
16 can be considered as a composite number
18 can be considered as a composite number
20 can be considered as a composite number

Example 03: Program of nested for loop:

#include <stdio.h>
int main () 
{
   int a, b; // declaring various variables without initiating variables
   for (a = 2; a<100; a++) 
{
      for (b = 2; b <= (a/b); b++) // (initialization statement; termination condition; increment/decrement statement)   
      if (! (a % b)) // if statement initialization 
      break; // break statement initialization for terminating the loop 
      if (b > (a/b)) // if statement initialization
      printf ("%d can be considered as prime numbers\n", a);
   }
   return 0;
}

Output:

2 can be considered as prime numbers
3 can be considered as prime numbers
5 can be considered as prime numbers
7 can be considered as prime numbers
11 can be considered as prime numbers
13 can be considered as prime numbers
17 can be considered as prime numbers
19 can be considered as prime numbers
23 can be considered as prime numbers
29 can be considered as prime numbers
31 can be considered as prime numbers
37 can be considered as prime numbers
41 can be considered as prime numbers
43 can be considered as prime numbers
47 can be considered as prime numbers
53 can be considered as prime numbers
59 can be considered as prime numbers
61 can be considered as prime numbers
67 can be considered as prime numbers
71 can be considered as prime numbers
73 can be considered as prime numbers
79 can be considered as prime numbers
83 can be considered as prime numbers
89 can be considered as prime numbers
97 can be considered as prime numbers

Example 04: Program of nested while loop:

#include <stdio.h>
int main ()
{
    int a=1, b; // declaring various variables as well as initiating value of ‘a’ as 1
    while (a <= 5) // while (termination condition)
    {
        b=1; // initialization of the value of ‘b’ as 1
        while (b <= a) // while (termination condition)
        {
            printf ("%d ", b); // printing the value of ‘b’ as an output
            b++; // increment statement to modify the value of ‘b’ for further evaluation
        }
        printf ("\n"); // printing the next line command as an output to change the new print line
        a++; // increment statement to modify the value of ‘b’ for further evaluation
    }
    return 0;
}

Output:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Example 05: Program of nested do while loop:

#include <stdio.h>
int main ()
{
    int a=1, b; // declaring various variables as well as initiating value of ‘a’ as 1
    do // ‘do while’ loop initialization
    {
        b=1; // initialization of the value of ‘b’ as 1
        do // ‘do while’ loop initialization
        {
            printf("*"); // printing ‘*’as an output 
            b++; // increment statement to modify the value of ‘b’ for further evaluation
        }
         while (b <= a); // while (termination condition)
        a++; // increment statement to modify the value of ‘b’ for further evaluation
        printf("\n"); // printing the next line command as an output to change the new print line
    }
         while (a <= 5); // while (termination condition)
    return 0;
}

Output:

*
**
***
****
*****

Example 06: Program of nested while and for loop:

/* program in c to find out every prime factor
of a specific number with the help of nested loop */
#include <math.h> // library to include mathematical operations 
#include <stdio.h> 
// program line to display every possible prime factor of a provided number n
void primeFactors (int n)
{
   // divisibility check 
   while (n % 2 == 0) 
   {
      printf("%d ", 2);
      n = n / 2;	
   }
   /* n must be odd So that one element can be we can be skipped
    (Note: a = a+2) */
   for (int a = 3; a <= sqrt(n); a = a + 2) 
   {
      // when n is divisible by a then display a and divide n
      while (n % a == 0) {
         printf("%d ", a);
         n = n / a;
      }
   }
   /* This test expression is defined to deal with the cases like 
    n is a prime number greater than 2 */
   if (n > 2)
      printf("%d are the prime factors of the entered number \n ", n );
}
int main ()
{
   int n = 237765;
   primeFactors(n);
   return 0;
}

Output:

3 5 11 11 131 are the prime factors of the entered number

Related Topics

What is a buffer in C?

A buffer is an area of memory set aside for the temporary storage of data. A data buffer (or just buffer) is a region of a physical memory storage used to...

5 minutes read.

Git Hooks

Git Hooks Overview Just like other version control systems, Git has its way to deliver customized scripts whenever some important activity occurs. The hooks act just like the triggers or catalysts...

4 minutes read.

Program to Find Mode of an Array in C

Mode is the highest occurring value or number in a given set of data elements. In a group of data values, a value that occurs most frequently is considered to...

3 minutes read.

C Program of Fencing the Ground

The college's ground is rectangular. Fencing the ground the management makes the decision to construct a fence around the ground. They planned to wrap a thick rope around the ground...

1 minute read.

Banker’s Algorithm in C

Introduction Before doing a "s-state" check to look for potential activities and deciding if allocation should be allowed to continue, the banker's algorithm, a resource allocation and deadlock avoidance algorithm, tests...

5 minutes read.

Difference between If and Switch Statement in C

Key Contrast: In the event that assertion is utilizes a Boolean articulation to execute the capability and can frequently be utilized to really look at various circumstances all at once.  The change...

4 minutes read.

C Decision control statement

Decision Making C conditional statements are used to specify one or more conditions. The statements will be executed if the condition becomes true otherwise alternative statement will be executed if the...

3 minutes read.

Data Structures And Algorithms in C

C language is one of the most flexible and simple languages. So, it is always better to learn any concept in C language compared to other languages. Let us look...

13 minutes read.

Ferror() in c

Ferror():  In C, the ferror() function checks assuming there is a blunder in the given stream. The ferror() function is utilized to check for the document blunder on given stream. A return...

4 minutes read.

Infinite loop in C

Definition of infinite loop The infinite loop is a loop that does not get dismissed because of its looping construct. A continuous output or no output are the two possible outcomes...

3 minutes read.

Reverse a Stack using Recursion in C

In this tutorial we will learn how recursion will be used in this case to reverse a stack. For loops, while loops, do-while loops, and similar constructions are not permitted....

5 minutes read.

Conditional Operator in C

In C programming language, the conditional operator (also known as the ternary operator) is a shorthand way of writing an if-else statement. The syntax of conditional operator in C is...

3 minutes read.

How to get ASCII value in C

For text data on computers and the internet, ASCII (American Standard Code for Information Interchange). It is the most widely used character encoding standard. One hundred twenty-eight alphabetic, numeric, special...

3 minutes read.

Pointers in C

Pointers in C: In the C programming language, a pointer is a pointer variable that points to the address of the other variable. It also stores the address of the...

4 minutes read.

Double Specifier in C

What is a double specifier? The term double denotes the double data type in C. It more accurately depicts floating point numbers. The idea that it has twice the precision of...

3 minutes read.

One Dimensional Array in C

One Dimensional Array in C: In the C programming language, an array is defined as a collection of one or more values of the same type. Every value present in...

4 minutes read.

Consumer billing system in C

Introduction : Billing has always been taught to do perfectly, we know today's world is full of products, and We all are using multiple products. We are buying and selling various...

9 minutes read.

Explain the Increment and Decrement Operators in C

In the C programming language, the increment operator (++) and the decrement operator (--) are used to increase or decreasing a variable’s value by 1, respectively. The increment operator is written...

10 minutes read.

While Loop Syntax in C

What is Loop? The statements in the sequence are repeatedly executed via looping statements in C until the condition is met. The body of a loop and a control statement make...

4 minutes read.

What is String Comparison in C

String comparison is the process of comparing two strings (sequences of characters) to determine if they are equal, or if one is greater or less than the other. The comparison...

4 minutes read.