C 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;