1.4 Conditions
Java propose if/else et switch. Le switch a ete modernise a partir de Java 14.
1. if / else if / else
int tailleFichier = 512; // en Mo
if (tailleFichier > 1000) {
System.out.println("Fichier trop volumineux");
} else if (tailleFichier > 100) {
System.out.println("Fichier moyen");
} else {
System.out.println("Petit fichier");
}
2. Operateur ternaire
Raccourci pour un if/else simple : condition ? valeurSiVrai : valeurSiFaux
String statut = tailleFichier > 1000 ? "trop grand" : "OK";
3. switch classique
String extension = "pdf";
switch (extension) {
case "pdf":
System.out.println("Document PDF");
break; // IMPORTANT : sans break, execution continue vers le cas suivant
case "jpg":
case "png":
System.out.println("Image");
break;
default:
System.out.println("Type inconnu");
}
4. switch moderne — expression (Java 14+)
Plus concis, pas de break, peut retourner une valeur directement.
String extension = "pdf";
String type = switch (extension) {
case "pdf" -> "Document";
case "jpg", "png" -> "Image"; // plusieurs cas sur une ligne
case "mp4" -> "Video";
default -> "Inconnu";
};
System.out.println(type); // "Document"
Avec un bloc si la logique est plus complexe :
String description = switch (extension) {
case "pdf" -> {
String msg = "Document au format PDF";
yield msg; // yield remplace return dans un switch expression
}
default -> "Autre";
};
Comparaison PHP : Le
match de PHP 8 est inspire du switch moderne Java.
Meme logique : pas de fall-through, retourne une valeur.
5. Operateurs de comparaison
// Primitifs : == compare les valeurs
int a = 5;
int b = 5;
a == b // true
// Objets (String, etc.) : == compare les references, pas les valeurs !
String s1 = new String("hello");
String s2 = new String("hello");
s1 == s2 // false ! (deux objets differents en memoire)
s1.equals(s2) // true (compare le contenu)
Toujours utiliser
.equals() pour comparer des String. C'est un piege classique en Java.
JBDC — Apercu
Les conditions serviront a valider les fichiers. En phase 3, on ecrira ce genre de logique :
// Determiner le type d'un fichier par son extension
String type = switch (extension.toLowerCase()) {
case "pdf", "docx", "txt" -> "document";
case "jpg", "png", "gif" -> "image";
case "mp4", "avi" -> "video";
default -> "inconnu";
};
// Valider la taille avant upload
if (taille > 2_000_000_000L) {
logger.warn("Fichier trop volumineux : {} octets", taille);
} else {
logger.info("Fichier accepte : {} ({})", nom, type);
}