Les boucles en Java
Sommaire
- 1- Objectifs
- 2- Introduction
- 3- La Boucle
for
: répétition inconditionnelle - 3.1- Syntaxe de la boucle for :
- 3.2- Exemple :
- 4- La Boucle
while
(Boucles conditionnelles) - 4.1- Syntaxe de la boucle while :
- 4.2- Exemple :
- 4.3- Activivtés
- 4.3.1- Activivté:01
- 4.3.2- Activivté:02
- 5- La Boucle
do-while
- 5.1- Syntaxe de la boucle do-while :
- 5.2- Exemple :
- 6- Boucles Imbriquées
- 6.1- Exemple :
- 7- Utilisation de break et continue
- 7.1- Exemple avec break :
- 7.2- Exemple avec continue :
- 8- Conclusion
- 9- Applications
- 9.1.1- Sommaire du cours Java
Les boucles en Java
-
Objectifs
- L’apprenant sera capable de créer des solutions utilisant des boucles imbriquées ou en série pour des problèmes de programmation plus complexes.
- L’apprenant peut écrire des programmes qui utilisent des boucles imbriquées pour générer des matrices, des tableaux multidimensionnels, ou d’autres structures similaires.
-
Introduction
- Une boucle est une structure de contrôle destinée à exécuter une portion de code plusieurs fois. La structure de contrôle branchant le pointeur ordinal au début de cette portion tant qu’une condition de continuation est remplie ou, selon les boucles, qu’une condition de sortie n’est pas remplie.
- Normalement, une boucle s’exécute selon le cas, soit un nombre de fois connu à l’avance, soit jusqu’à ce qu’une condition permette de sortir de la boucle. Il arrive toutefois qu’une erreur de programmation fasse que la condition ne devienne jamais vraie. Le programme s’exécute alors indéfiniment à l’intérieur de cette boucle infinie.
- Les boucles sont des structures qui permettent d’exécuter plusieurs fois la même série d’instructions jusqu’à ce qu’une condition ne soit plus réalisée…
- On appelle parfois ces structures instructions répétitives ou bien itérations.
- La façon la plus commune de faire une boucle, est de créer un compteur (une variable qui s’incrémente, c’est-à-dire qui augmente de 1 à chaque tour de boucle) et de faire arrêter la boucle lorsque le compteur dépasse une certaine valeur.
- Les boucles sont des structures de contrôle qui permettent de répéter un bloc de code plusieurs fois. Java offre plusieurs types de boucles :
for
,while
, etdo-while
. Ce tutoriel vous guidera à travers ces différentes boucles avec des exemples pratiques. -
La Boucle
for
: répétition inconditionnelle - La répétition inconditionnelle consiste à répéter n fois le contenu de la boucle: on connait à l’avance le nombre de répétitions.
- La boucle for est utilisée lorsque vous connaissez à l’avance le nombre de répétitions. Elle se compose de trois parties :
- Initialisation
- Condition
- Mise à jour
-
Syntaxe de la boucle for :
-
Exemple :
- Dans cet exemple, la variable i est initialisée à 0, la boucle continue tant que i est inférieur à 5, et i est incrémenté de 1 après chaque itération.
-
La Boucle
while
(Boucles conditionnelles) - Dans les exempels précédents (boucle for), on savait à l'avance combien de fois on voulait répéter le code, et plus précisément on utilisait une variable pour parcourir un intervalle de nombres.
- On va maintenant voir une autre sorte de boucle, où on veut faire une répétition conditionnelle, c'est à dire qu'on veut répéter une action jusqu'à ce qu'une certaine condition soit vraie... habituellement on ne sait pas à l'avance combien de répétitions ça va prendre.
- La boucle
while
est utilisée lorsque vous ne connaissez pas à l'avance le nombre de répétitions et que vous voulez continuer à exécuter le code tant qu'une condition est vraie. - Le but de la boucle
while
est de répéter un ensemble d’instructions, jusqu'à ce qu'une condition particulière soit vraie. La syntaxe de la boucle while est la suivante : -
Syntaxe de la boucle while :
-
Exemple :
- Dans cet exemple, la boucle continue à s'exécuter tant que i est inférieur à 5. La variable i est incrémentée de 1 à chaque itération.
- Le bloc d’instruction, placé entre accolades juste après le while, sera exécuté tant que la condition est vraie.
-
Activivtés
-
Activivté:01
- Créer une boucle qui génère à chaque tour de boucle un nombre entier aléatoire entre 1 (compris) et 10. La boucle s'arrête quand un nombre supérieur à 7 est généré.
-
Activivté:02
- Le programme Java suivant implémente le jeu "Devinez un nombre". Dans ce jeu, l'ordinateur choisit un nombre aléatoire entre 0 et 1000, que le joueur doit deviner.
- À chaque proposition du joueur, l'ordinateur indique si le nombre proposé est plus grand ou plus petit que le nombre secret.
- L'objectif du jeu est de trouver le nombre secret le plus rapidement possible. Les concepts de programmation utilisés dans ce programme incluent :
- Utilisation d'une boucle while.
- Utilisation de la structure conditionnelle if pour tester les variables.
- Utilisation des opérateurs de comparaison (!=, <, et >).
- Saisie d'une chaîne de caractères depuis le clavier.
- Conversion d'une chaîne de caractères en un nombre réel.
- Conversion d'un nombre réel en un nombre entier.
- Initialisation d'une variable avec un nombre aléatoire compris entre 0 et 1000.
-
La Boucle
do-while
- La boucle do-while est similaire à la boucle while, mais elle garantit que le bloc de code est exécuté au moins une fois, même si la condition est fausse dès le départ.
-
Syntaxe de la boucle do-while :
-
Exemple :
- Dans cet exemple, le bloc de code est exécuté une première fois, puis la condition est testée. La boucle continue tant que i est inférieur à 5.
-
Boucles Imbriquées
- Les boucles peuvent être imbriquées, ce qui signifie que vous pouvez avoir une boucle à l'intérieur d'une autre boucle. Ceci est utile pour les opérations sur des tableaux multidimensionnels.
-
Exemple :
- Dans cet exemple, pour chaque valeur de i, la boucle intérieure pour j s'exécute entièrement, produisant ainsi une grille de valeurs.
-
Utilisation de break et continue
- break : permet de sortir immédiatement d'une boucle.
- continue : permet de passer à l'itération suivante sans exécuter le reste du code dans la boucle.
-
Exemple avec break :
- Dans cet exemple, la boucle s'arrête lorsque i vaut 5.
-
Exemple avec continue :
- Dans cet exemple, la boucle saute l'affichage des valeurs paires de i.
-
Conclusion
- Les boucles sont essentielles en programmation pour automatiser les tâches répétitives. En comprenant comment utiliser les boucles for, while, et do-while, ainsi que les instructions break et continue, vous pouvez écrire des programmes Java plus efficaces et flexibles.
-
Applications
for (initialisation; condition; mise à jour) {
// code à exécuter
}
public class BoucleFor {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("i vaut : " + i);
}
}
}
while (condition) {
// code à exécuter
}
public class BoucleWhile {
public static void main(String[] args) {
int i = 0;
while (i < 5) {
System.out.println("i vaut : " + i);
i++;
}
}
}
Solution
package boucle_while;
import java.util.Random;
public class while02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random rand = new Random();
int nb = 1;
while (nb < 8) {
nb = rand.nextInt(1, 10);
System.out.println("Nombre généré : " + nb);
}
}
}
Solution
package boucle_while;
import java.util.Scanner;
public class jeux {
public static void main(String[] args) {
/* Déclaration des variables */
int nombre_secret, int_nombre_propose;
/* Initialisation des variables */
int_nombre_propose = -1;
/* Scanner pour lire l'entrée utilisateur */
Scanner scanner = new Scanner(System.in);
/* Choix d'un nombre au hasard entre 0 (inclus) et 1000 (non inclus) : */
nombre_secret = (int) (Math.random() * 1000);
int nbr_essaies=1;
/* Début de la boucle while */
while (int_nombre_propose != nombre_secret) {
System.out.print("Entrez un nombre : ");
/* Saisie d'un nombre entier depuis le clavier */
int_nombre_propose = scanner.nextInt();
/* Comparaison du nombre entier proposé avec le nombre secret */
if (int_nombre_propose > nombre_secret)
System.out.println("Le nombre cherché est plus petit que " + int_nombre_propose);
else if (int_nombre_propose < nombre_secret)
System.out.println("Le nombre cherché est plus grand que " + int_nombre_propose);
nbr_essaies++;
} /* Fin de la boucle while */
System.out.println("Bravo, vous avez trouvé le nombre recherché après"+nbr_essaies+" essaies!");
/* Fermeture du scanner */
scanner.close();
} /* Fin de la fonction main() */
} /* Fin de la classe */
do {
// code à exécuter
} while (condition);
public class BoucleDoWhile {
public static void main(String[] args) {
int i = 0;
do {
System.out.println("i vaut : " + i);
i++;
} while (i < 5);
}
}
public class BouclesImbriquees {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.println("i vaut : " + i + ", j vaut : " + j);
}
}
}
}
public class BoucleBreak {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // Sortie de la boucle
}
System.out.println("i vaut : " + i);
}
}
}
public class BoucleContinue {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // Passer à l'itération suivante
}
System.out.println("i vaut : " + i);
}
}
}
Boucle for :
Écrivez un programme qui affiche les nombres de 1 à 10.
Boucle while :
Écrivez un programme qui demande à l'utilisateur d'entrer des nombres et s'arrête lorsqu'il entre un nombre négatif.
Boucle do-while :
Écrivez un programme qui affiche les nombres de 1 à 5, même si la condition initiale est fausse.
Boucles Imbriquées :
Écrivez un programme qui affiche une table de multiplication de 1 à 5.
break et continue :
Écrivez un programme qui affiche les nombres de 1 à 10 mais saute les nombres multiples de 3 et s'arrête lorsqu'il atteint 8.