Nested for loop in C

A nested for loop in C means placing one for loop inside another for loop. This is a very important concept because many practical problems involve repeated work inside repeated work. Pattern printing, multiplication tables, matrix traversal, coordinate-style processing, and row-column logic all depend heavily on nested loops.

Beginners usually learn the basic for loop first, and then nested for loops feel more difficult because there are now two loop variables, two conditions, and two update steps working together. But the core idea is still simple: for every single iteration of the outer loop, the inner loop runs completely. In this article, we will understand what a nested for loop in C is, how it works, where it is used, and the common mistakes beginners should avoid.

What is Nested for Loop in C?

A nested for loop in C is a for loop written inside the body of another for loop. The outer loop controls the larger repetition, and the inner loop performs repeated work for each step of the outer loop.

for (initialization1; condition1; update1)
{
    for (initialization2; condition2; update2)
    {
        /* inner loop body */
    }
}

This structure is called nested because one loop is placed inside another.

In a nested for loop, the inner loop completes fully for each iteration of the outer loop.

Why Nested for Loop is Important in C

  • It is used for row and column style processing.
  • It is useful in pattern printing programs.
  • It is needed for matrix-style operations and tables.
  • It helps solve problems involving pairs or combinations of values.
  • It teaches how repeated structures can work together.

Once you understand nested loops, many beginner algorithm problems become much easier to approach.

Syntax of Nested for Loop in C

The general structure is:

for (int i = 1; i <= outer_limit; i++)
{
    for (int j = 1; j <= inner_limit; j++)
    {
        statements;
    }
}
LoopRole
Outer loopControls the main repetition
Inner loopRuns fully for each outer-loop iteration

The names of the loop variables do not matter by themselves, but they should be different so that each loop can track its own progress correctly.

How Nested for Loop Works in C

To understand the execution, imagine this example:

for (int i = 1; i <= 3; i++)
{
    for (int j = 1; j <= 2; j++)
    {
        printf("i = %d, j = %d\n", i, j);
    }
}

The execution order is:

  1. Outer loop starts with i = 1.
  2. Inner loop runs with j = 1 and j = 2.
  3. Inner loop finishes.
  4. Outer loop moves to i = 2.
  5. Inner loop runs fully again.
  6. This continues until the outer loop ends.

The important idea is that the inner loop restarts completely for each new value of the outer loop variable.

Simple Example of Nested for Loop in C

Here is a simple complete program:

#include <stdio.h>

int main(void)
{
    for (int i = 1; i <= 3; i++)
    {
        for (int j = 1; j <= 2; j++)
        {
            printf("i = %d, j = %d\n", i, j);
        }
    }

    return 0;
}

This program prints all combinations of the outer values 1 to 3 with the inner values 1 to 2.

Nested for Loop for Pattern Printing

One of the most common beginner uses of nested for loops is pattern printing.

#include <stdio.h>

int main(void)
{
    for (int i = 1; i <= 4; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            printf("* ");
        }
        printf("\n");
    }

    return 0;
}

Output:

*
* *
* * *
* * * *

The outer loop controls the row number, and the inner loop controls how many stars are printed in that row.

Nested for Loop for Multiplication Table

Nested for loops are also useful for printing tables.

#include <stdio.h>

int main(void)
{
    for (int i = 1; i <= 3; i++)
    {
        for (int j = 1; j <= 5; j++)
        {
            printf("%d ", i * j);
        }
        printf("\n");
    }

    return 0;
}

This creates three rows, each containing multiplication results for a different outer-loop value.

Nested for Loop with Arrays and Matrices

Nested for loops are very common when working with two-dimensional arrays or matrix-style data.

#include <stdio.h>

int main(void)
{
    int arr[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };

    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Here, the outer loop handles rows and the inner loop handles columns.

ContextOuter Loop Usually ControlsInner Loop Usually Controls
Pattern printingRowsItems inside a row
2D arraysRow indexColumn index
TablesTable rowValues in that row

Time Complexity Idea of Nested for Loop

A nested for loop often increases the total number of operations quickly. If one loop runs n times and the inner loop also runs about n times, the total work can become about n * n.

Beginners do not need deep algorithm analysis immediately, but it is useful to know that nested loops can grow expensive when the input becomes large.

Common Mistakes with Nested for Loop in C

  • using the same loop variable name incorrectly in both loops
  • misunderstanding that the inner loop restarts each time
  • forgetting to print a newline after each outer-loop iteration when needed
  • writing the wrong boundary condition for rows or columns
  • creating too much repeated work without realizing the cost
MistakeWhy it is wrongBetter approach
Wrong loop boundsMay print too many or too few valuesCheck row and column limits carefully
Missing newline in pattern programsOutput formatting becomes unclearPlace printf("\n"); after the inner loop when needed
Confusing i and jLogic becomes incorrectUse each loop variable consistently for its intended role

Most nested-loop bugs are not about syntax. They are usually about wrong boundaries, wrong variable usage, or misunderstanding the execution order.

Best Practices for Nested for Loop in C

  • Keep the outer and inner loop roles clear.
  • Use different loop variables for each loop.
  • Check boundaries carefully, especially in arrays and patterns.
  • Add comments only if the nested logic is not obvious.
  • Avoid unnecessary nesting when a simpler structure can solve the problem.

A good nested loop should make the row-column or outer-inner structure obvious at a glance.

FAQs

What is nested for loop in C?

A nested for loop in C is a for loop placed inside another for loop.

How does nested for loop work in C?

For each iteration of the outer loop, the inner loop runs completely from start to finish.

Where is nested for loop used in C?

Nested for loops are used in pattern printing, multiplication tables, matrix traversal, row-column operations, and repeated pairwise processing.

Can we use nested for loop with arrays in C?

Yes. Nested for loops are commonly used to process two-dimensional arrays, where one loop controls rows and the other controls columns.

What is the biggest beginner mistake in nested for loop in C?

A common mistake is misunderstanding how many times the inner loop runs and mixing up the loop boundaries or loop variables.