Cours : Algorithmique & Programmation C Chapitre : Les Structures Répétitives
COURS
ALGORITHMIQUE & PROGRAMMATION C
CHAPITRE
LES STRUCTURES RÉPÉTITIVES
Cours : Algorithmique & Programmation C Chapitre : Les Structures Répétitives
1. LA STRUCTURE RÉPÉTITIVE WHILE
Il s'agit de l'instruction: Tant que (expression vraie) Faire
< BLOC D'INSTRUCTIONS >
FinTantQue
oui non
condition
vraie
bloc
d’instructions
Syntaxe:
while (<expression>)
<bloc d'instructions>
<expression> peut désigner :
• une variable numérique
• une expression fournissant un résultat numérique
<bloc d’instructions> :
• Une suite d’instructions comprise entre {}
• Une seule instruction
Tant que l ’<expression> donne une valeur différente de 0 le <bloc d’instructions>
est exécuté.
Si l ’<expression> donne 0, l’exécution continue avec l’instruction qui suit le bloc
Le <bloc d’instructions> est exécuté 0 ou n fois.
1
Cours : Algorithmique & Programmation C Chapitre : Les Structures Répétitives
Exemple:
/* Afficher 10 fois ” Bonjour ” */
int cpt = 0;
while (cpt < 10)
{
printf (” Bonjour\n”);
cpt ++;
}
Autre possibilité :
/* Afficher 10 fois ” Bonjour ” */
int cpt = 1;
while (cpt <= 10)
{
printf (” Bonjour\n”);
cpt ++;
}
2. LA STRUCTURE RÉPÉTITIVE DO WHILE
Il s'agit de l'instruction: Repeter
< BLOC D'INSTRUCTIONS >
TantQue (expression vraie)
bloc d'
instructions
non
condition
oui vraie
suite du programme
Syntaxe:
do
<bloc d'instructions>
while (<expression>);
Le <bloc d ’instructions> est exécuté au moins une fois et aussi longtemps que
l ’<expression> fournit une valeur différente de 0
La structure do while est comme la structure while avec la différence:
• while évalue la condition avant d’exécuter le bloc d’instructions
• do while évalue la condition après avoir exécuté le bloc d’instructions
2
Cours : Algorithmique & Programmation C Chapitre : Les Structures Répétitives
Exemple:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main ( ) /* Calcul de la racine carrée */
{ float Nbre ;
do
{
printf (”Entrez un entier positif : ”);
scanf (”%d”, &Nbre);
} while (Nbre < 0);
printf (”La racine carrée de %.2f est %.2f\n ”, Nbre, sqrt (Nbre));
getch();
}
3. LA STRUCTURE RÉPÉTITIVE FOR
Il s'agit de l'instruction: Pour i =1 à n Faire
< BLOC D'INSTRUCTIONS >
FinPour
initialisation
condition de
continuité vraie
non
oui
bloc d'instructions
modification suite du programme
Syntaxe:
for (<expr1>; <expr2>; <expr3>)
<bloc d’instructions>
3
Cours : Algorithmique & Programmation C Chapitre : Les Structures Répétitives
L’instruction for est équivalent à :
<expr1>
while (<expr2>)
{
<bloc d’instructions>
<expr3>;
}
<expr1> est évaluée une fois avant le passage de la boucle (pour initialiser les
données de la boucle).
<expr2> est évaluée avant chaque passage de la boucle (pour décider si la boucle est
répétée ou non).
<expr3> est évaluée à la fin de chaque passage de la boucle (pour réinitialiser les
données de la boucle)
REMARQUE :
<expr1> et <expr3> peuvent contenir plusieurs initialisations ou réinitialisations
séparées par des virgules
Les 3 expressions <expr1>, <expr2> et <expr3> ne portent pas forcément sur la
même variable
Les 3 expressions peuvent être omises, mais pas les ‘;’.
Exemple:
...
int n, tot;
for (n=1, tot = 0; (n < 11); n++)
tot += n;
printf (“La somme des nombres de 1 à 10 est %d\n“, tot);
…
4. CHOIX DE LA STRUCTURE RÉPÉTITIVE
Choisir la structure qui reflète le mieux l’idée du programme :
Si le bloc d’instructions ne doit pas être exécuté si la condition est fausse, alors utilisez
while ou for.
Si le bloc d’instructions doit être exécuté au moins une fois, alors utilisez do while
Si le nombre d’exécutions du bloc d’instructions dépend d’une ou plusieurs variables
qui sont modifiées à la fin de chaque répétition, alors utilisez for.
Si le bloc d’instructions doit être exécuté aussi longtemps qu’une condition extérieure
est vraie, alors utilisez while.