Programmation Java/Conditions

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


En Java, les séquences d'instructions if...else et switch..case permettent de formuler des traitements conditionnels.

Instructions if...else[modifier | modifier le wikicode]

L'instruction if permet d'exécuter une instruction (ou un bloc d'instructions) si une condition est remplie :

if (condition) {
    // instructions à exécuter
}

L'instruction else complète l'instruction if. Elle permet d'exécuter une instruction si la condition indiquée par le if n'est pas remplie :

if (condition) {
    // instructions à exécuter
} else {
    // instructions à exécuter si la condition n'est pas remplie
}

On peut aussi enchaîner les tests conditionnels les uns à la suite des autres :

 if (condition1) {
     // bloc1
 } else if (condition2) {
     // bloc2
 } else {
     // bloc3
 }

Instructions switch...case[modifier | modifier le wikicode]

La séquence d'instructions switch permet d'exécuter différentes instructions (ou blocs d'instructions) en fonction d'une liste de cas. L'instruction default permet de définir un cas par défaut.

 switch (expression)
 {
     case constante1:
         // instructions à exécuter
         break;
     case constante2:
         // instructions à exécuter
         break;
     // ...
     default:
         // instructions à exécuter
         break;
 }

L'instruction break sert à sortir du test. Dans le cas contraire, les instructions du case suivant seraient également exécutées. Pour plus de précision, voir la section suivante (itération).

Remarque : le dernier break est facultatif (qu'il s'agisse de la clause default dans le cas précédent, ou d'une clause case). Cependant ajouter ce dernier break améliore la maintenabilité du code en cas d'ajout d'un nouveau cas (case ou default) ou de déplacement du dernier cas.

Logo L'instruction switch ne fonctionne que sur des types simples : int, short, byte et char, ainsi que sur les wrappers correspondants (Integer, Short, Byte et Character). Depuis JDK 6 on compte aussi le type énumération (enum), et depuis JDK 7 le String (mais pas sur OpenJDK 1.7).