For Loop


For Loop

When you know exactly how many times you want to loop through a block of code, use the for loop instead of a while loop:

Syntax

for (expression 1; expression 2; expression 3) {
  // code block to be executed
}

Expression 1 is executed (one time) before the execution of the code block.

Expression 2 defines the condition for executing the code block.

Expression 3 is executed (every time) after the code block has been executed.

The example below will print the numbers 0 to 4:

Example

int i;

for (i = 0; i < 5; i++) {
  printf("%d\n", i);
}

Example explained

Expression 1 sets a variable before the loop starts (int i = 0).

Expression 2 defines the condition for the loop to run (i must be less than 5). If the condition is true, the loop will start over again, if it is false, the loop will end.

Expression 3 increases a value (i++) each time the code block in the loop has been executed.


Nested Loops

It is also possible to place a loop inside another loop. This is called a nested loop.

The "inner loop" will be executed one time for each iteration of the "outer loop":

Example

int i, j;

// Outer loop
for (i = 1; i <= 2; ++i) {
  printf("Outer: %d\n", i);  // Executes 2 times

  // Inner loop
  for (j = 1; j <= 3; ++j) {
    printf(" Inner: %d\n", j);  // Executes 6 times (2 * 3)
  }
}

Real-Life Examples

To demonstrate a practical example of the for loop, let's create a program that counts to 100 by tens:

Example

for (i = 0; i <= 100; i += 10) {
  printf("%d\n", i);
}

In this example, we create a program that only print even numbers between 0 and 10 (inclusive):

Example

for (i = 0; i <= 10; i = i + 2) {
  printf("%d\n", i);
}

Here we only print odd numbers:

Example

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

In this example we print the powers of 2 up to 512:

Example

for (i = 2; i <= 512; i *= 2) {
  printf("%d\n", i);
}

And in this example, we create a program that prints the multiplication table for a specified number:

Example

int number = 2;
int i;

// Print the multiplication table for the number 2
for (i = 1; i <= 10; i++) {
  printf("%d x %d = %d\n", number, i, number * i);
}

return 0;