< Programmation Java

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 :

if (condition)
	// instruction à 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)
	// instruction à exécuter
else
	// instruction à exécuter si la condition n'est pas remplie

Pour plusieurs instructions, il faut les regrouper avec des accolades :

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

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;
	case constante3:
	case constante4:
		// instructions à exécuter pour les deux constantes
		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, 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.

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).
Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.