Les structures conditionnelles en Java
Les structures conditionnelles ont une ou plusieurs conditions à évaluer ou à tester par le programme, ainsi qu'une instruction ou des instructions à exécuter si la condition est considérée comme vraie et, éventuellement, d'autres instructions à exécuter si la condition est fausse.
Le langage de programmation Java fournit les structures conditionnelles suivantes :
- if
- if-else
- if imbriquée
- switch
Structure conditionnelle if
La syntaxe de l'instruction if est la suivante:
if( condition ){
// corps
//instructions à exécuter si la condition est true
}
Comment fonctionne?
L'instruction if évalue la condition à l'intérieur de la parenthèse().
- Si la condition est évaluée à true, les instructions à l'intérieur du corps de if sont exécutées.
- Si la condition est évaluée à false, les déclarations à l'intérieur du corps de if ne sont pas exécutées.
Exemple 1 :
public class Test{
public static void main(String args[]){
a=-3;
// structure conditionnelle
if(a< 0){
System.out.println("la valeur de a est négative ");
}
// fin du programme
System.out.println("Good bye !");
}
}
Good bye !
Pour en savoir plus sur le moment où l'expression test est évaluée à true (valeur non nulle) et false (0), voir les opérateurs relationnels et logiques.
Structure conditionnelle if-else
L'instruction if peut avoir un bloc else optionnel. La syntaxe de l'instruction if..else est la suivante:
if( condition ){
// corps
//instructions à exécuter si la condition est true
}
else{
//corps
// instructions à exécuter si condition est false
}
Comment fonctionne?
Si la condition est évaluée à true,
- les instructions à l'intérieur du corps de if sont exécutées.
- les instructions à l'intérieur du corps de else sont exclues de l'exécution.
Si la condition est évaluée à false,
- les instructions à l'intérieur du corps de else sont exécutées.
- les instructions à l'intérieur du corps de if sont exclues de l'exécution.
Exemple 2 :
public class Test{
public static void main(String args[]){
a=3;
// structure conditionnelle
if(a< 0){
System.out.println("la valeur de a est négative ");
}
else{
System.out.println("la valeur de a est positive ou nulle ");
}
// fin du programme
System.out.println("Good bye !");
}
}
Good bye !
Structure conditionnelle if-else if-else
L'instruction if ... else exécute deux codes différents selon que la condition est true ou false. Parfois, un choix doit être fait parmi plus de 2 possibilités.
if-else if-else vous permet de vérifier plusieurs conditions et d'exécuter différentes instructions.
if( condition1 ){
// corps
//instructions à exécuter si la condition 1 est true
}
else if(condition2){
//corps
// instructions à exécuter si condition 2 est true
// condition 1 est false
}
else if(condition3){
//corps
// instructions à exécuter si condition 2 est true
// condition 1, condition 2 est false
}
...
else{
//corps
// instructions à exécuter si toutes les conditions est false
}
Exemple 3 :
public class Test{
public static void main(String args[]){
a=3;
// structure conditionnelle
if(a < 0){
System.out.println("la valeur de a est négative ");
}
else if( a > 0){
System.out.println("la valeur de a est positive ");
}
else{
System.out.println("la valeur de a est nulle ");
}
// fin du programme
System.out.println("Good bye !");
}
}
Good bye !
Structure conditionnelle if imbriquée
Il est possible d'inclure une instruction if ... else dans le corps d'une autre instruction if ... else.
Exemple 4 :
public class Test{
public static void main(String args[]){
a=-2;
// structure conditionnelle
if(a <= 0){
if(a==0){
System.out.println("la valeur de a est nulle ");
}
else{
System.out.println("la valeur de a est négative ");
}
}
else{
System.out.println("la valeur de a est positive ");
}
// fin du programme
System.out.println("Good bye !");
}
}
Good bye !
Exemple 5 :
if(a <= 0){
System.out.println("la valeur de a est négative ou nulle");
}
else{
System.out.println("la valeur de a est positive ");
}
est équivalent à
Exemple 6 :
if(a <= 0)
System.out.println("la valeur de a est négative ou nulle");
else
System.out.println("la valeur de a est positive ");
Structure conditionnelle switch
L'instruction switch est une instruction multidirectionnelle utilisée pour gérer les décisions. Cela fonctionne presque exactement comme la déclaration if-else. La différence est que l'instruction switch génère un code plus lisible par rapport à l'instruction if-else. De plus, il s'exécute parfois plus rapidement que son homologue if-else.
Syntaxe
switch(expression)
{
case val1:
// instructions
break; // optionnelle
case val2:
// instructions
break; // optionnelle
case val3:
// instructions
break; // optionnelle
default:
// instructions
}
Les règles suivantes s'appliquent à une instruction switch
- La variable utilisée dans une instruction switch ( ou expression) ne peut être que des nombres entiers, des nombres entiers convertibles (byte, short, char), des chaînes et des enums.
- Vous pouvez avoir n'importe quel nombre de déclarations de case dans un switch. Chaque case est suivi de la valeur à comparer et de deux points.
- La valeur d'une case doit être du même type de données que la variable( ou expression) dans le switch et il doit s'agir d'une constante ou d'un littéral.
- Lorsque la variable est égale à un cas, les instructions qui suivent ce cas seront exécutées jusqu'à ce qu'une instruction break soit atteinte.
- Lorsqu'une instruction break est atteinte, switch se termine et le flux de contrôle passe à la ligne suivante qui suit l'instruction switch.
- Tous les cas ne doivent pas nécessairement contenir break. Si aucune break n'apparaît, le flux de contrôle se répercutera sur les cas suivants jusqu'à ce qu'une break soit atteinte.
- Une instruction switch peut avoir un cas par défaut facultatif, qui doit apparaître à la fin de switch. Le cas par défaut peut être utilisé pour effectuer une tâche lorsqu'aucun des cas n'est vrai. Aucune break n'est nécessaire dans le cas par défaut.
Exemple 7
voici un programme qui à partir d’un nombre compris entre 1 et 7 affiche le jour correspondant
public class Test{
public static void main(String args[]){
int jour=3;
switch(jour){
case 1 : {
System.out.println("Lundi"); break;
}
case 2 : {
System.out.println("Mardi"); break;
}
case 3 : {
System.out.println("Mercredi"); break;
}
case 4 : {
System.out.println("Jeudi"); break;
}
case 5 : {
System.out.println("Vendredi"); break;
}
case 6 : {
System.out.println("Samedi"); break;
}
case 7 : {
System.out.println("dimanche"); break;
}
default: System.out.println("jour invalide");
}
}
}
