Looping 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:

  1. For Loop
  2. While Loop
  3. Do while Loop

 

For Loop: Syntex as follows

for (Start value; end condition; increase value) statement;

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.

Example code:

int counter;
    for(counter=1; counter<=10; counter++)
    printf("n Number: %d",counter);

The While Statement

“while” statement is a sentinel controlled repetition which can be iterated indefinite number of times. Number of iterations is controlled using a sentinel variable (test expression).

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

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.

Do While Loop

    do{
    code to iterate
    }while(test-expression)

“do..while” statement is a sentinel controlled repetition which is quite different from the other two statements we covered earlier. This statement runs the code first and then checks the test-expression, so there is always a guarantee that the code runs at least once. This type of loop is generally used for password checks and menus.

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

 


Related posts:

About author

This article was written by admin

Admin has over twenty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles. Working presently as Development Manager in India. A firm Believer in Knowledge grows when it shared.

Comments

Comments (1)
  1. kasyno internetowe says - Posted: October 24, 2012

    One of the rare sites that we include a desire, just where new items make me in a a great deal better spirits! Thanks a lot greyish day schedule gets to be significantly less exhausting! Sustain the nice! Ok bye I’ve got to confess i haven’t encountered this sort of done well website! Fantastic written content, I especially like to read Renseignements regarding this topic! Keep writing!

Leave your comment

Your email address will not be published. Required fields are marked *