Exercice 1 sur 5
Ta première boucle
Une boucle for répète du code. Elle a trois parties :
for (int i = 0; i < 3; i++) {
IO.println(i);
}
// Affiche : 0, 1, 2
int i = 0 : on commence à 0
i < 3 : on continue tant que i est plus petit que 3
i++ : on augmente i de 1 après chaque tour
Remplace le 3 par un 5 pour que les nombres de 0 à 4 s'affichent.
Code de départ
void main() {
for (int i = 0; i < 3; i++) {
IO.println(i);
}
}
Contexte
Les trois parties d'une boucle for
for (init; condition; mise à jour) : les trois parties s'exécutent à des moments différents :
1. init : une seule fois, tout au début. 2. condition : vérifiée avant chaque tour. 3. mise à jour : après chaque tour.
Les trois parties sont facultatives. for (;;) est une boucle infinie (exactement comme while(true)).
Exercice 2 sur 5
Boucle : valeur de départ
Tu peux changer la valeur de départ de la boucle :
for (int i = 5; ...) // commence à 5
Modifie la valeur de départ pour que les nombres de 1 à 5 s'affichent.
Ne change qu'un seul nombre.
Code de départ
void main() {
for (int i = 0; i <= 5; i++) {
IO.println(i);
}
}
Contexte
Pourquoi commencer à 0 ?
En informatique, on commence presque toujours à compter à 0, parce que les indices d'un tableau sont des décalages par rapport au début. Le premier élément se trouve à 0 position du début.
Ce fameux « off-by-one » (se tromper d'exactement 1) est l'un des bugs les plus courants en développement logiciel.
Exercice 3 sur 5
Compte à rebours
Les boucles peuvent aussi tourner à l'envers :
for (int i = 10; i >= 1; i--) {
// i-- veut dire : diminuer i de 1
}
La boucle est presque finie. Remplace ??? par la bonne expression pour qu'elle compte à rebours de 5 à 1.
Code de départ
void main() {
for (int i = 5; i >= 1; ???) {
IO.println(i);
}
}
Contexte
Incrémentation et décrémentation
i++ est le raccourci de i = i + 1. Il existe deux variantes : i++ (post-incrémentation) et ++i (pré-incrémentation). La différence : int a = i++; enregistre d'abord l'ancienne valeur, puis augmente i. int a = ++i; augmente d'abord i, puis l'enregistre.
Dans une boucle for, ça ne change rien, parce que la valeur obtenue n'est pas utilisée.
Exercice 4 sur 5
Boucle avec condition
Tu peux mettre un if à l'intérieur d'une boucle : c'est comme ça qu'on filtre des valeurs.
La boucle va de 1 à 10. Écris la condition du if pour que seuls les nombres pairs s'affichent.
Astuce : un nombre est pair si i % 2 == 0 (pas de reste quand on le divise par 2).
Code de départ
void main() {
for (int i = 1; i <= 10; i++) {
if (???) {
IO.println(i);
}
}
}
Contexte
L'opérateur modulo %
% te donne le reste d'une division. 7 % 3 = 1 (7 divisé par 3 = 2, reste 1). C'est comme ça qu'on teste la divisibilité : x % n == 0 veut dire « x est divisible par n ».
Usages courants : tester pair/impair, faire « boucler » des valeurs (par exemple indice % tableau.length pour parcourir un tableau en boucle), ou faire des calculs d'horloge.
Exercice 5 sur 5
Boucle while
Une boucle while tourne tant que la condition vaut true :
while (condition) {
// code
}
La boucle doit commencer à 1 et s'arrêter à 3. Écris la condition.
Code de départ
void main() {
int i = 1;
while (???) {
IO.println(i);
i++;
}
}
Contexte
for ou while : lequel choisir ?
Utilise for quand tu sais à l'avance combien de fois la boucle doit tourner (par exemple « 5 fois » ou « pour chaque élément »). Utilise while quand tu ne le sais pas : par exemple « lire des lignes jusqu'à la fin du fichier » ou « répéter jusqu'à ce que l'utilisateur tape 'exit' ».
Il existe aussi do-while : comme while, mais le corps s'exécute au moins une fois, parce que la condition n'est vérifiée qu'à la fin.