Construction des boucles for en Java
Bien que les instructions while
et do/while
soient puissantes, certaines tâches en programmation sont si fréquentes qu’il est pertinent d’utiliser des boucles for en Java. Par exemple, itérer exactement 10 fois ou parcourir une liste de noms peut être réalisé en une seule ligne grâce à la syntaxe concise de la boucle for. Ainsi, nous présentons ici la structure de contrôle de répétition la plus pratique pour la boucle for en Java.
La boucle for se compose de trois parties principales séparées par des points-virgules : l’initialisation, la condition et la mise à jour. Pour mieux visualiser cette structure, consultez le tableau ci-dessous.
Initialisation | Condition | Mise à jour |
---|---|---|
Déclaration et initialisation de la variable | Évaluation de la condition booléenne | Modification de la variable de boucle |
Exemple de boucle for basique
Considérez l’exemple suivant qui imprime dix valeurs :
for(int i = 0; i < 10; i++) System.out.println("La valeur est : " + i); System.out.println(i); // NE COMPILERA PAS
Remarquez que la variable i
déclarée dans la boucle a une portée limitée à la boucle elle-même.
Utilisation des boucles for pour imprimer des nombres
Voici un autre exemple qui affiche les cinq premiers nombres, en commençant par zéro :
for(int i = 0; i < 5; i++) { System.out.print(i + " "); }
À chaque itération, la condition est vérifiée et, grâce à la mise à jour, la variable i
est incrémentée automatiquement.
Scénarios réels avec la boucle for en Java
Dans le monde réel, il est fréquent d’utiliser la variable i
comme compteur dans une boucle for. Historiquement, i
est utilisé comme abréviation de increment et demeure une pratique répandue. Pour des boucles imbriquées, on emploiera souvent j
et k
comme variables.
Impression des éléments dans l’ordre inverse
Supposons que vous souhaitez imprimer les mêmes cinq nombres en ordre inverse. Par exemple, l’objectif est d’afficher : 4 3 2 1 0. Considérez l’exemple initial suivant :
for(var compteur = 5; compteur > 0; compteur--) { System.out.print(compteur + " "); }
Ce code affiche : 5 4 3 2 1 car il commence par 5. Pour corriger cela, modifions la valeur initiale :
for(var compteur = 4; compteur > 0; compteur--) { System.out.print(compteur + " "); }
Le résultat est : 4 3 2 1 mais il manque le 0. En ajustant la condition de terminaison, nous obtenons finalement :
for(var compteur = 4; compteur >= 0; compteur--) { System.out.print(compteur + " "); }
Ainsi, le code affiche correctement : 4 3 2 1 0. Ce petit exercice montre l’importance de bien paramétrer la condition de sortie pour obtenir le résultat souhaité.
Exemples avancés de la boucle for en Java
Pour approfondir votre compréhension de la boucle for en Java, examinons quelques exemples avancés avec des variations et cas particuliers.
Boucle for infinie
L’exemple suivant crée une boucle infinie qui affiche en continu “Bonjour le monde” :
for( ; ; ) System.out.println("Bonjour le monde");
Utilisation de plusieurs termes dans la boucle for
Il est également possible d’inclure plusieurs déclarations dans l’initialisation et la mise à jour :
int x = 0; for(long y = 0, z = 4; x < 5 && y < 10; x++, y++) { System.out.print(y + " "); } System.out.print(x + " ");
Redéclaration d’une variable dans l’initialisation
Attention à ne pas redéclarer une variable déjà existante. Le code suivant ne compilera pas :
int x = 0; for(int x = 4; x < 5; x++) // NE COMPILERA PAS System.out.print(x + " ");
La solution consiste à assigner une valeur à la variable existante :
int x = 0; for(x = 0; x < 5; x++) System.out.print(x + " ");
Types de données incompatibles dans l’initialisation
Les variables de l’initialisation doivent être du même type. Par exemple, le code suivant provoquera une erreur :
int x = 0; for(long y = 0, int z = 4; x < 5; x++) // NE COMPILERA PAS System.out.print(y + " ");
Utilisation de variables de boucle en dehors de la boucle
Une variable déclarée dans la boucle n’est accessible qu’à l’intérieur. Le code ci-dessous échouera à la compilation :
for(long y = 0, x = 4; x < 5 && y < 10; x++, y++) System.out.print(y + " "); System.out.print(x); // NE COMPILERA PAS
Modification des variables de boucle
En règle générale, il est déconseillé de modifier une variable de boucle à l’intérieur de la boucle, car cela peut rendre le comportement imprévisible. Par exemple :
for(int i = 0; i < 10; i++) i = 0;
for(int j = 1; j < 10; j++) j++;
La boucle for-each en Java
La boucle for-each est spécialement conçue pour itérer sur des tableaux ou des collections implémentant l’interface Iterable
. Cette structure permet de réduire considérablement le code standard tout en améliorant la lisibilité.
Exemple avec un tableau de chaînes de caractères
Voici une méthode classique utilisant une boucle for traditionnelle :
public void afficherNoms(String[] noms) { for(int compteur = 0; compteur < noms.length; compteur++) System.out.println(noms[compteur]); }
Et la version optimisée avec une boucle for-each :
public void afficherNoms(String[] noms) { for(var nom : noms) System.out.println(nom); }
Exemple avec une List
La boucle for-each fonctionne également avec une List
:
public void afficherNoms(List noms) { for(var nom : noms) System.out.println(nom); }
Cas d’erreurs fréquentes avec la boucle for-each
Certains exemples ne compilent pas en raison d’incompatibilités de types. Par exemple :
String oiseaux = "Geai"; for(String oiseau : oiseaux) // NE COMPILERA PAS System.out.print(oiseau + " ");
String[] paresseux = new String[3]; for(int paresseu : paresseux) // NE COMPILERA PAS System.out.print(paresseu + " ");
En conclusion, la boucle for en Java offre une syntaxe puissante et concise pour itérer sur des ensembles de données. Grâce à ces exemples et explications, vous êtes désormais mieux armé pour écrire un code clair et efficace.
Par ailleurs, il est toujours important d’adapter le style de votre code en fonction de vos besoins et de respecter les bonnes pratiques en matière de nommage, telles que l’utilisation de noms de variables et de méthodes en français, par exemple getNom
au lieu de getName
.
Enfin, n’oubliez pas que la maîtrise de la boucle for en Java est essentielle pour développer des applications robustes et performantes. En outre, l’utilisation judicieuse de ces boucles contribuera à optimiser votre code et à améliorer son référencement naturel.