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