Java for loop

Java for Loop

The for loop is a fundamental control structure in Java that allows you to repeat a block of code a specific number of times. This tutorial will delve deep into the for loop, explain its components, variations, and provide detailed examples, including nested loops, to ensure a comprehensive understanding.


1. What is a for Loop?

A for loop in Java is a control flow statement that allows you to execute a block of code repeatedly based on a condition. The loop consists of three main components: initialization, condition, and update. The loop continues to execute as long as the condition evaluates to true.

Basic Syntax:

for (initialization; condition; update) {
    // Code to be executed
}
  • Initialization: Sets up a loop control variable (counter).

  • Condition: Evaluated before each iteration; if true, the loop continues.

  • Update: Modifies the loop control variable after each iteration.


2. Basic Example of a for Loop

Let's start with a simple example where we print the numbers from 1 to 5 using a for loop:

for (int i = 1; i <= 5; i++) {
    System.out.println("Number: " + i);
}

Explanation:

  • Initialization: int i = 1; - The loop starts with i equal to 1.

  • Condition: i <= 5; - The loop will continue as long as i is less than or equal to 5.

  • Update: i++ - After each iteration, i is incremented by 1.

Output:

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

3. Components of the for Loop

3.1 Initialization

The initialization step is executed only once when the loop starts. This is where you set up your loop control variable, typically a counter.

Example:

for (int i = 0; i < 10; i++) {
    // Initialization: int i = 0
}

In this example, the loop starts with i initialized to 0.

3.2 Condition

The condition is evaluated before each iteration. If the condition is true, the loop body executes. If it is false, the loop terminates.

Example:

for (int i = 0; i < 10; i++) {
    // Condition: i < 10
}

Here, the loop continues as long as i is less than 10.

3.3 Update

The update step is executed after each iteration of the loop. It typically increments or decrements the loop control variable.

Example:

for (int i = 0; i < 10; i++) {
    // Update: i++
}

In this example, i is incremented by 1 after each iteration.


4. Practical Examples of for Loop

4.1 Counting Downwards

You can also use a for loop to count downwards by changing the initialization and update steps.

Example:

for (int i = 5; i > 0; i--) {
    System.out.println("Countdown: " + i);
}

Explanation:

  • Initialization: int i = 5; - The loop starts with i equal to 5.

  • Condition: i > 0; - The loop will continue as long as i is greater than 0.

  • Update: i-- - After each iteration, i is decremented by 1.

Output:

Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1

4.2 Summing Numbers

You can use a for loop to sum a series of numbers. Here's an example that calculates the sum of the first 10 positive integers:

Example:

int sum = 0;

for (int i = 1; i <= 10; i++) {
    sum += i;  // Add i to sum
}

System.out.println("The sum is: " + sum);

Explanation:

  • Initialization: int i = 1; - The loop starts with i equal to 1.

  • Condition: i <= 10; - The loop will continue as long as i is less than or equal to 10.

  • Update: i++ - After each iteration, i is incremented by 1.

  • Sum Calculation: sum += i; - This adds the current value of i to the sum variable in each iteration.

Output:

The sum is: 55

5. Nested for Loop

A nested for loop is a for loop inside another for loop. It is commonly used when you need to perform repeated operations within each iteration of an outer loop. For example, nested loops are useful for working with grids, tables, or any structure that involves multiple dimensions.

5.1 Example of a Nested for Loop

Let's create a nested loop that prints a multiplication table from 1 to 3.

Example:

for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 3; j++) {
        System.out.println(i + " * " + j + " = " + (i * j));
    }
    System.out.println();  // Print a blank line after each table row
}

Explanation:

  • Outer Loop: for (int i = 1; i <= 3; i++) - This loop controls the rows of the multiplication table (numbers 1 to 3).

  • Inner Loop: for (int j = 1; j <= 3; j++) - This loop controls the columns of the table, multiplying i by j.

Output:

1 * 1 = 1
1 * 2 = 2
1 * 3 = 3

2 * 1 = 2
2 * 2 = 4
2 * 3 = 6

3 * 1 = 3
3 * 2 = 6
3 * 3 = 9

In this example, the outer loop iterates through the numbers 1 to 3, while the inner loop multiplies each number by 1, 2, and 3.

5.2 Nested for Loop for Patterns

Nested loops are also useful for generating patterns. Here's an example that prints a right-angled triangle pattern of asterisks:

Example:

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print("*");
    }
    System.out.println();  // Move to the next line after each row
}

Explanation:

  • Outer Loop: Controls the number of rows (5 rows).

  • Inner Loop: Controls the number of asterisks printed in each row, which increases with each iteration of the outer loop.

Output:

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

In this example, the outer loop controls the number of rows, and the inner loop prints the corresponding number of asterisks for each row.


6. Controlling the Loop with break and continue

You can control the flow of the for loop using the break and continue statements.

6.1 Using break

The break statement exits the loop immediately, regardless of the loop's condition.

Example:

for (int i = 1; i <= 5; i++) {
    if (i == 3) {
        break;  // Exit the loop when i is 3
    }
    System.out.println("i: " + i);
}

Output:

i: 1
i: 2

In this example, the loop terminates when i equals 3, so only the values 1 and 2 are printed.

6.2 Using continue

The continue statement skips the current iteration and proceeds to the next iteration of the loop.

Example:

for (int i = 1; i <= 5; i++) {
    if (i == 3) {
        continue;  // Skip the iteration when i is 3
    }
    System.out.println("i: " + i);
}

Output:

i: 1
i: 2
i: 4
i: 5

In this example, when i equals 3, the continue statement skips that iteration, so 3 is not printed.


7. Infinite for Loop

A for loop can become infinite if you omit the condition or if the condition never evaluates to false. This is useful in scenarios like

server applications or event listeners that need to run indefinitely.

Example:

for (;;) {
    System.out.println("This is an infinite loop.");
}

In this example, the loop will run indefinitely because there is no condition to stop it.


Conclusion

The for loop is a powerful and versatile tool in Java, allowing you to automate repetitive tasks and control the flow of your program. Whether you're using a simple loop to iterate over numbers or a nested loop to handle more complex tasks, mastering the for loop is essential for efficient Java programming.

For more Java tutorials and resources, visit codeswithpankaj.com.

Last updated