====if==== ===Condition classique=== if () { plusieurs instructions; } else if () une instruction; else une instruction; Attention aux ''else'' s'il y a des ''if'' imbriqués : if () if () une instruction; else // Ici, l'indentation est mauvaise car le else correspond au second if. une instruction; ===Conditions multiples sur une même valeur=== if (IntStream.of(12, 16, 19).anyMatch(i -> i == x)) ====switch==== ===Cas courant=== Les ''switch''/''case'' agissent comment des ''goto''. Il faut donc mettre un break pour éviter de passer à l'instruction suivante. int i = 0; switch (i) { case 0: i = 2; // Sans break, l'instruction i = 3 sera exécutée. // break; case 1: i = 3; break; // Plusieurs conditions pour une même exécution de code. case 2: default: break; } Les variables déclarées dans un ''case'' sont accessibles depuis les ''case'' suivants. int k = 1; switch (k) { case 0: // Si k != 0, la variable i existe mais n'est pas initialisée. int i = 0; break; case 1: { int j = 3; break; } case 2: default: i = 123; // j = 15; // Impossible car en dehors du bloc de déclaration de j. break; } Le ''switch'' / ''case'' fonctionne de la même façon sur des ''string''.