CLooping StatementsFor Loop

Mastering the for Loop in C: A Beginner’s Guide

The for loop is one of the most commonly used control structures in C programming. It allows a block of code to be executed repeatedly, typically for a known number of iterations. In this blog, we’ll explore the for loop in detail, including its syntax, working, and practical examples with detailed explanations.


1. What is a for Loop?

The for loop is a pre-tested loop that repeats a block of code while a given condition is true. It’s ideal when the number of iterations is known beforehand.

Syntax:

for (initialization; condition; update) {
    // Code to execute in each iteration
}

Components:

  1. Initialization: Sets the loop control variable (e.g., int i = 0).
  2. Condition: Evaluates before each iteration. If true, the loop body executes; if false, the loop ends.
  3. Update: Changes the loop control variable after each iteration (e.g., i++).

2. Simple Example

Let’s start with a basic example: printing numbers from 1 to 10.

main.c
#include <stdio.h>
 
int main() {
    for (int i = 1; i <= 10; i++) {
        printf("%d ", i);
    }
    return 0;
}

Output:

1 2 3 4 5 6 7 8 9 10

Explanation:

  • Initialization: int i = 1 sets the starting value of i to 1.
  • Condition: i <= 10 checks if i is less than or equal to 10.
  • Update: i++ increments i by 1 after each iteration.

3. Practical Applications of for Loops

1. Calculating the Sum of Numbers

This program calculates the sum of the first n natural numbers.

main.c
#include <stdio.h>
 
int main() {
    int n, sum = 0;
 
    printf("Enter the value of n: ");
    scanf("%d", &n);
 
    for (int i = 1; i <= n; i++) {
        sum += i;  // Add current number to sum
    }
 
    printf("The sum of the first %d natural numbers is %d.\n", n, sum);
    return 0;
}

Output (Example):

  1. Input: 5
    The sum of the first 5 natural numbers is 15.

2. Generating a Multiplication Table

This program generates a multiplication table for a given number.

main.c
#include <stdio.h>
 
int main() {
    int number;
 
    printf("Enter a number: ");
    scanf("%d", &number);
 
    for (int i = 1; i <= 10; i++) {
        printf("%d x %d = %d\n", number, i, number * i);
    }
 
    return 0;
}

Output (Example):

  1. Input: 3
    3 x 1 = 3
    3 x 2 = 6
    3 x 3 = 9
    ...
    3 x 10 = 30

3. Checking for Prime Numbers

This program checks whether a given number is prime.

main.c
#include <stdio.h>
 
int main() {
    int num, isPrime = 1;
 
    printf("Enter a number: ");
    scanf("%d", &num);
 
    if (num <= 1) {
        printf("The number is not prime.\n");
        return 0;
    }
 
    for (int i = 2; i <= num / 2; i++) {
        if (num % i == 0) {
            isPrime = 0;  // Not prime if divisible by i
            break;       // Exit loop early
        }
    }
 
    if (isPrime) {
        printf("%d is a prime number.\n", num);
    } else {
        printf("%d is not a prime number.\n", num);
    }
 
    return 0;
}

Output (Examples):

  1. Input: 7
    7 is a prime number.
  2. Input: 9
    9 is not a prime number.

4. Nested for Loops: Creating Patterns

Nested for loops are useful for working with multi-dimensional structures or patterns.

Example: Right-Angled Triangle Pattern

main.c
#include <stdio.h>
 
int main() {
    int rows;
 
    printf("Enter the number of rows: ");
    scanf("%d", &rows);
 
    for (int i = 1; i <= rows; i++) {
        for (int j = 1; j <= i; j++) {
            printf("* ");
        }
        printf("\n");  // Move to the next line
    }
 
    return 0;
}

Output (Example):

  1. Input: 4
    *
    * *
    * * *
    * * * *

5. Reversing a Number

This program reverses the digits of a given number.

main.c
#include <stdio.h>
 
int main() {
    int num, reversed = 0;
 
    printf("Enter a number: ");
    scanf("%d", &num);
 
    for (; num != 0; num /= 10) {
        int digit = num % 10;
        reversed = reversed * 10 + digit;
    }
 
    printf("Reversed number: %d\n", reversed);
    return 0;
}

Output (Examples):

  1. Input: 1234
    Reversed number: 4321

4. Advanced Use Case

Calculating Factorials

This program calculates the factorial of a number using a for loop.

main.c
#include <stdio.h>
 
int main() {
    int num;
    unsigned long long factorial = 1;
 
    printf("Enter a positive integer: ");
    scanf("%d", &num);
 
    if (num < 0) {
        printf("Factorial is not defined for negative numbers.\n");
    } else {
        for (int i = 1; i <= num; i++) {
            factorial *= i;
        }
        printf("Factorial of %d = %llu\n", num, factorial);
    }
 
    return 0;
}

Output (Examples):

  1. Input: 5
    Factorial of 5 = 120

5. Key Points to Remember

  1. Initialization, condition, and update are all optional in a for loop. For example:
    for (;;) {
        // Infinite loop
    }
  2. Avoid infinite loops unless required (e.g., using for (;;) without conditions).
  3. Nested for loops are useful for multi-dimensional data or complex patterns.
  4. Use meaningful variable names for clarity, especially in complex loops.

Summary

The for loop is an essential tool for repetitive tasks, such as iterating through arrays, generating patterns, and performing calculations. It provides a structured way to write concise and efficient code.

In the next blog, we’ll explore while loops, which are more suited for tasks with uncertain iteration counts. Stay tuned!