Il est possible de répéter automatiquement des blocs d'instructions jusqu'à ce qu'une condition soit vraie. Cette répétition est faite à l'aide d'une boucle (loop en anglais). En C, il existe 3 boucles :
Dans ce chapitre, nous allons étudier chacune de ces boucles en commençant par le do..while.
La boucle do..while répète une séquence d'instructions tant que la condition est vraie :
do {
// ...
Bloc d'instructions
// ...
}
while (test);
Voici l'organigramme correspondant à la boucle do..while :

Le bloc d'instructions est aussi appelé le corps de la boucle. C'est la partie entre les accolades. Une exécution de la boucle est appelée une itération.
Avec la boucle do..while, le corps de la boucle est néssairement exécuté une fois, même
si le test est faux dès la première itération.
Voici un exemple de boucle do..while qui demande à l'utilisateur de saisir un
nombre tant que ce dernier n'est pas strictement négatif.
int n;
do {
// Corps de la boucle : demande la saisie d'un nombre
printf ("Entrez un nombre négatif : ");
scanf ("%d", &n);
}
while (n>0);
printf ("Vous avez saisi %d.\n", n);
La boucle sera répétée tant que n sera positif ou nul.
Écrire un programme qui demande à l'utilisateur de saisir une note tant que la note n'est pas comprise entre 0 et 20.
float note;
// Saisie de la note entre 0 et 20
// COMPLETEZ ICI
// Affichage de la note
printf ("La note est %.1f.\n", note);
Voici la sortie attendue :
Entrez la note entre 0 et 20 : -5
Entrez la note entre 0 et 20 : 22
Entrez la note entre 0 et 20 : 16.4
La note est 16.4.
Écrire un programme avec une boucle do..while qui compte de 3 à 22 selon le modèle
suivant :
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Avec une boucle do..while, affichez la suite suivante :
$$ U_{n+1} = U_{n} * 2 $$
avec \( U_0 = 1 \)
Affichez la suite jusqu'à ce que \(U_n\) soit inférieur ou égal à 1024 selon le modèle suivant :
1 2 4 8 16 32 64 128 256 512 1024
Pour l'analyse des programmes ci-dessous, il est préférable de disposer d'un papier et d'un crayon.
En programmation, à quoi peut servir une boucle ?
while(1); ) ou d'attendre un événement extérieur avec une boucle.
Essaie encore ...
Quelles sont les boucles en C ?
Qu'affiche le code suivant ?
int x=7;
do {
printf ("%d ", ++x);
} while (x<10);
x vaut 9 avant incrément.
Essaie encore ...
Qu'affiche le code suivant ?
int x=7;
do {
printf ("%d ", x--);
} while (x>=5);
x vaut 5 avant le printf.
Essaie encore ...
Qu'affiche le code suivant ?
int x=2;
do{
x=x+1;
} while (x<=10);
printf ("%d", x);
x est inférieur ou égale à 10, on continue. Donc on sort de la boucle à 11.
Essaie encore ...
Que doit saisir l'utilisateur pour sortir de la boucle ?
int x;
do{
scanf ("%d", &x);
} while (x<0 || x>100);
x est strictement inférieur à 0 ou strictement supérieur à 100, on continue la boucle.
Essaie encore ...
Que doit saisir l'utilisateur pour sortir de la boucle ?
int x;
do{
scanf ("%d", &x);
} while (x<0 && x>100);