Loops in C
In every programming language, thus also in the
C programming language, there are
circumstances were you want to do the same
thing many times. For instance you want to print
the same words ten times. You could type ten
printf function, but it is easier to use a loop. The
only thing you have to do is to setup a loop that
execute the same printf function ten times.
There are three basic types of loops which are:
“for loop”
“while loop”
“do while loop”
The for loop
The “for loop” loops from one number to another
number and increases by a specified value each
time.
The “for loop” uses the following structure:
for (Start value; continue or end condition; increase value)
statement;
Look at the example below:
#include<stdio.h>
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf ("Hello\n");
printf ("World\n");
}
return 0;
}
Note: A single instruction can be placed behind
the “for loop” without the curly brackets.
Note: For those who don’t know printf or need to
know more about printf format specifiers, then
first a look at our printf C language tutorial.
Let’s look at the “for loop” from the example:
We
first start by setting the variable i to 0. This is
where we start to count. Then we say that the for
loop must run if the counter i is smaller then ten.
Last we say that every cycle i must be increased
by one (i++).
In the example we used i++ which is the same as
using i = i + 1. This is called incrementing. The
instruction i++ adds 1 to i. If you want to
subtract 1 from i you can use i -- . It is also
possible to use ++i or -- i. The difference is is
that with ++i (prefix incrementing) the one is
added before the “for loop” tests if i < 10. With i+
+ (postfix incrementing) the one is added after the
test i < 10. In case of a for loop this make no
difference, but in while loop test it makes a
difference. But before we look at a postfix and
prefix increment while loop example, we first look
at the while loop.
The while loop
The while loop can be used if you don’t know
how many times a loop must run.
Here is an
example:
#include<stdio.h>
int main()
{
int counter, howmuch;
scanf("%d", &howmuch);
counter = 0;
while ( counter < howmuch)
{
counter++;
printf("%d\n", counter);
}
return 0;
}
Let’s take a look at the example:
First you must
always initialize the counter before the while loop
starts ( counter = 1). Then the while loop will run
if the variable counter is smaller then the variable
“howmuch”. If the input is ten, then 1 through 10
will be printed on the screen. A last thing you
have to remember is to increment the counter
inside the loop (counter++). If you forget this the
loop becomes infinitive.
As said before (after the for loop example) it
makes a difference if prefix incrementing (++i) or
postfix incrementing (i++) is used with while loop.
Take a look at the following postfix and prefix
increment while loop example:
#include<stdio.h>
int main(void) {
int i;
i = 0;
while(i++ < 5) {
printf("%d\n", i);
}
printf("\n");
i = 0;
while(++i < 5) {
printf("%d\n", i);
}
return 0;
}
The output of the postfix and prefix increment
example will look like this:
1
2
3
4
5
1
2
3
4
i++ will increment the value of i, but is using the
pre-incremented value to test against < 5. That’s
why we get 5 numbers.
++i will increment the value of i, but is using the
incremented value to test against <
5. That’s why
we get 4 numbers.
The do while loop
The “do while loop” is almost the same as the
while loop. The “do while loop” has the following
form:
do
{
do something;
}
while (expression);
Do something first and then test if we have to
continue. The result is that the loop always runs
once. (Because the expression test comes
afterward). Take a look at an example:
#include<stdio.h>
int main()
{
int counter, howmuch;
scanf("%d", &howmuch);
counter = 0;
do
{
counter++;
printf("%d\n", counter);
}
while ( counter < howmuch);
return 0;
}
Note: There is a semi-colon behind the while line.
No comments