Appuyez sur → ou cliquez pour avancer
Afficher « Bonjour ! » plusieurs fois…
avec_boucle.cfor (int i = 0; i < 1000; i++) {
printf("Bonjour !\n");
}
3 lignes, que ce soit 5, 1000 ou un million de fois.
Répéter tant qu’une condition est vraie
while (cond) { }
Exécuter au moins une fois, puis répéter
do { } while (cond);
Répéter un nombre de fois connu
for (i=0; i<n; i++)
break, continue, boucles imbriquées, pièges, quiz
break; continue;
Toutes les boucles suivent le même cycle en 4 étapes
« Tant que la condition est vraie, on recommence. »
while = « tant que » en anglais.
syntaxewhile (condition) {
// instructions à répéter
}
exemple.cint i = 1;
while (i <= 5) {
printf("%d ", i);
i++;
}
La condition est testée avant chaque tour.
Si elle est fausse dès le départ : 0 tour.
Ici, i++ fait évoluer la condition.
Appuyez sur → pour exécuter une instruction
| Tour | i | i <= 5 ? | Affichage |
|---|
« Fais d’abord, vérifie ensuite. »
Le corps s’exécute toujours au moins une fois.
syntaxedo {
// instructions à répéter
} while (condition)⟦;⟧
saisie.cint note;
do {
printf("Note sur 20 : ");
scanf("%d", ¬e);
} while (note < 0 || note > 20);
Le test est fait après le corps.
Idéal pour les menus et les saisies à vérifier.
Même code, mais la condition est fausse dès le départ…
Teste puis exécute → 0 tour ou plus
Exécute puis teste → au moins 1 tour
« Pour i allant de 0 à n… »
La boucle idéale quand on connaît le nombre de tours.
Exécutée une seule fois, avant le 1er tour.
Testée avant chaque tour. Fausse → on sort.
Exécutée après chaque tour.
for (int i = 5; i > 0; i--) {
printf("%d ", i);
}
for (int i = 0; i <= 10; i += 2) {
printf("%d ", i);
}
int somme = 0;
for (int i = 1; i <= n; i++) {
somme += i;
}
ex : afficher les nombres de 1 à 100, répéter 10 fois une action
ex : afficher un menu, demander une saisie à vérifier
ex : lire des valeurs jusqu’à ce que l’utilisateur tape 0
for (int i = 1; i <= 10; i++) {
if (i == 4) {
⟦break;⟧
}
printf("%d ", i);
}
for (int i = 1; i <= 5; i++) {
if (i == 3) {
⟦continue;⟧
}
printf("%d ", i);
}
break arrête immédiatement toute la boucle.
continue saute la fin du tour en cours.
Une boucle à l’intérieur d’une autre boucle
i = numéro de ligne (externe)
j = étoile de la ligne (interne)
Ce ; termine la boucle : elle tourne à vide, puis le bloc { } ne s’exécute qu’une fois.
De 0 à 5 avec <= : ça fait 6 tours, pas 5 ! Vérifiez vos bornes.
= affecte, == compare. Ici la condition vaut toujours 1 : boucle infinie.
Que va afficher ce code ? Cliquez sur votre réponse.
for (int i = 0; i < 3; i++)
printf("%d", i);
i prend les valeurs 0, 1 et 2 : à 3, le test i < 3 est faux.
int i = 5;
while (i > 0) {
i -= 2;
}
printf("%d", i);
5 → 3 → 1 → -1. À -1, i > 0 est faux.
int n = 0;
do {
n++;
} while (n < 0);
printf("%d", n);
Le corps s’exécute une fois (n = 1), puis 1 < 0 est faux.
Cliquez sur une carte pour voir l’indice
Affiche tous les multiples de 3 entre 1 et 100.
Bonus : affiche aussi leur somme.
boucle forTeste si i % 3 == 0 à chaque tour.
Pour la somme : une variable initialisée à 0 avant la boucle.
Demande un entier n entre 1 et 10 jusqu’à ce qu’il soit valide, puis affiche sa table de multiplication.
do…while + forRépète la saisie avec do { … } while (n < 1 || n > 10);
Puis une boucle for de 1 à 10 qui affiche n * i.
L’ordinateur choisit un nombre entre 1 et 100. L’utilisateur propose jusqu’à trouver : « plus grand » ou « plus petit ». Affiche le nombre d’essais.
while ou do…whileNombre secret : rand() % 100 + 1
Boucle tant que essai != secret, avec un compteur incrémenté à chaque tour.