Looking for my blog ? Click here !
Vous cherchez mon blog ? Cliquez ici !

Bonjour,

Aujourd' hui nous allons voir les traitements répétifs. Il y a trois instructions fondamentales à connaitre:

  • l' instruction for.

  • l' instruction while.

  • l' instruction do-while.



L' instruction for:

for(initialisation; condition; expression)
{
//Traitement
}


L' instruction for évalue d' abord l' initialisation, ce n' est fait qu' une seule fois: avant le début du traitement de la boucle.
Ensuite elle évalue la condition, si elle est fausse, on passe directement à la suite du code, après le bloc FOR.
Si la condition est vrai on effectue le traitement, puis cela évalue "expression" qui en général incrémente le compteur et ensuite on retourne au début de la boucle.

Voici un exemple d' utilisation:

int i=0;
for(i=0; i<30; i++)
{
printf("compteur: %in",i);
}



L' instruction while:

while(condition)
{
//Traitement
}


L' instruction while évalue d' abord la condition si elle est fausse, on passe directement à la suite du code, après le bloc WHILE.
Si la condition est vraie on effectue le traitement, puis on retourne au début de la boucle.


Voici un exemple d' utilisation:

int i=0;
while(i<30)
{
i++
printf("compteur: %in",i);
}


L' instruction do-while:

do
{
//Traitement
}while(condition)


L' instruction do-while effectue dans tout les cas une fois le traitement. Ensuite elle évalue la condition: si elle est fausse on quitte la boucle.
Si la condition est vraie on retourne au début de la boucle.


Voici un exemple d' utilisation:

int i=0;
do
{
i++
printf("compteur: %in",i);
}while(i<30)



Les instructions break et continue :

L' instruction break permet de sortir de la boucle. Elle quitte tout simplement la boucle depuis l' endroit ou elle est appelée et le programme reprend son éxecution après la boucle.
L' instruction continue permet elle d' aller au début de la boucle. le traitement est arrété la ou est l' instruction continue et reprend au début de la boucle.

Ici on ne vas afficher que les entier pairs de 0 à 40;

int i=0;
do
{
if(i>40) break;
if(i%2==1) {
i++;
break;
}
printf("%in"i);
}while(1)


Retour sur la boucle for :

On peut noter que la boucle for peut en fait simuler toutes les autres boucles:

Simulation de la boucle while et/ou do :

int i=0;
for( ; i<30; ){
//Traitement
i++;
}



Boucle infinie :

Il est possible de créer des boucles infinies, par exemple la librairie GTK attends les événements dans une boucle infinie (on en sort alors avec l' instruction break).

Exemple de boucle infinie :

int i=0;
for( ; 1; ){
//Traitement
i++;
}



Article rédigé par:  Jmix90    le: 03/07/2007

    
Soyez le premier à laisser un commentaire sur cet article !

Le langage C : C: 03 - Traitements répétifs
 
Déjà 43470 visiteurs,  Votre IP :54.80.93.234