# Programmation Java/Conditions

* Introduction
* La notion de machine virtuelle
* Installation
** NetBeans
** Eclipse
** Visual Studio Code
* Bases du langage
** Premier programme
** Commentaires
** Types de base
** Opérateurs
** Conditions
** Bloc de portée
** Itérations
** Tableaux
* Les classes en Java
** Membres
** Modificateurs d'accès
** Héritage
** Encapsulation
** Polymorphisme
** Classes abstraites
** Interfaces
** Classes internes
** Transtypage
** Types génériques
** Instanciation et cycle de vie
** « this »
** Objets comparables et clés
** Énumérations
** Exceptions
** Packages
* Classes de base
** Collections
** Nombre de taille arbitraire
** Tags Javadoc
** Annotations
** Entrées sorties
** Threads et synchronisation
** Méthodes natives
** Réflexion
** Regex
** JUnit
* Conclusion
* Exemples en Java
** Générer un carré magique
** Générer un triangle de Sierpiński
** XML
** Swing
*** Un premier exemple
*** Formulaire avec boutons sur image
*** Calcul de somme
*** Calcul de distance
* Annexes
** Les outils de base fournis avec le Java Development Kit
** Créer une archive Java
** Paramétrer la JVM
** Liste des mots réservés
** Débogage
** Java et les autres langages
* Introduction
* La notion de machine virtuelle
* Installation
** NetBeans
** Eclipse
** Visual Studio Code
* Bases du langage
** Premier programme
** Commentaires
** Types de base
** Opérateurs
** Conditions
** Bloc de portée
** Itérations
** Tableaux
* Les classes en Java
** Membres
** Modificateurs d'accès
** Héritage
** Encapsulation
** Polymorphisme
** Classes abstraites
** Interfaces
** Classes internes
** Transtypage
** Types génériques
** Instanciation et cycle de vie
** « this »
** Objets comparables et clés
** Énumérations
** Exceptions
** Packages
* Classes de base
** Collections
** Nombre de taille arbitraire
** Tags Javadoc
** Annotations
** Entrées sorties
** Threads et synchronisation
** Méthodes natives
** Réflexion
** Regex
** JUnit
* Conclusion
* Exemples en Java
** Générer un carré magique
** Générer un triangle de Sierpiński
** XML
** Swing
*** Un premier exemple
*** Formulaire avec boutons sur image
*** Calcul de somme
*** Calcul de distance
* Annexes
** Les outils de base fournis avec le Java Development Kit
** Créer une archive Java
** Paramétrer la JVM
** Liste des mots réservés
** Débogage
** Java et les autres langages
[ Modifier le sommaire ]
En Java, les séquences d'instructions if...else et switch..case permettent de formuler des traitements conditionnels.

## Instructions if...else

L'instruction if permet d'exécuter une instruction (ou un bloc d'instructions) si une condition est remplie. La condition est une expression booléenne dont le résultat est de type boolean.
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 :
Exemple :
Pour plusieurs instructions, il faut les regrouper avec des accolades :
On peut aussi enchaîner les tests conditionnels les uns à la suite des autres :
Pour une meilleure compréhension du code, il est recommandé que la condition dans le if soit positive et simplifiée.
Pareillement, les variables booléennes devraient évaluer une condition positive plutôt que négative.

## Instructions switch...case

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.
L'instruction break sert à sortir du test. Dans le cas contraire, les instructions du case suivant seraient également exécutées, ce qui est utile pour traiter plusieurs cas de la même façon. 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.
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).