1.5 Boucles
Java propose quatre facons d'iterer : while, do/while, for classique, et for-each.
Il y a aussi forEach via les collections (version lambda).
1. while
Evalue la condition avant chaque iteration. Peut ne jamais s'executer.
int tentatives = 0;
while (tentatives < 3) {
System.out.println("Tentative " + tentatives);
tentatives++;
}
2. do / while
Evalue la condition apres chaque iteration. S'execute au moins une fois.
double valeur;
do {
valeur = Math.random() * 10; // genere un nombre entre 0 et 10
} while (valeur < 5); // recommence si < 5
// Note : valeur est declaree AVANT le do{} pour etre visible dans le while
Piege classique : une variable declaree a l'interieur du bloc
do{}
n'est pas accessible dans le while() — elle sort du scope.
Declarer toujours la variable avant le do.
3. for classique
for (int i = 0; i < 5; i++) {
System.out.println("Iteration " + i);
}
// Parcourir un tableau
String[] fichiers = {"doc.pdf", "photo.jpg", "video.mp4"};
for (int i = 0; i < fichiers.length; i++) {
System.out.println(i + " : " + fichiers[i]);
}
4. for-each
La facon la plus lisible de parcourir un tableau ou une collection. Pas d'index disponible.
String[] fichiers = {"doc.pdf", "photo.jpg", "video.mp4"};
for (String fichier : fichiers) {
System.out.println(fichier);
}
5. forEach — version lambda (collections)
Disponible sur toutes les collections Java. Utilise une lambda (on verra ca en phase 4).
import java.util.List;
List<String> fichiers = List.of("doc.pdf", "photo.jpg", "video.mp4");
// Version longue
fichiers.forEach(fichier -> System.out.println(fichier));
// Version courte avec reference de methode
fichiers.forEach(System.out::println);
forEach n'existe pas sur les tableaux simples (String[]), seulement sur les
collections (List, Set...). On verra les collections en phase 3.
6. break et continue
for (int i = 0; i < 10; i++) {
if (i == 3) continue; // saute l'iteration i=3
if (i == 7) break; // stoppe la boucle
System.out.println(i);
}
// Affiche : 0 1 2 4 5 6
JBDC — Apercu
Les boucles piloteront le menu interactif de la version console qu'on construira en phase 4 :
Scanner scanner = new Scanner(System.in);
boolean running = true;
while (running) {
System.out.println("\n=== JBDC ===");
System.out.println("1. Envoyer un fichier");
System.out.println("2. Lister mes transferts");
System.out.println("0. Quitter");
int choix = scanner.nextInt();
switch (choix) {
case 1 -> envoyerFichier();
case 2 -> listerTransferts();
case 0 -> running = false;
default -> System.out.println("Choix invalide");
}
}
Phase 1 terminee. La phase 2 commence la POO : on modelise les classes
Fichier, Utilisateur et Transfert.