1. Séquence des ifdéclarations

Parfois, un programme doit effectuer de nombreuses actions différentes en fonction de la valeur d'une variable ou de la valeur d'une expression.

Disons que notre tâche ressemble à ceci :

  • Si la température est supérieure à 20degrés, alors mettez une chemise
  • Si la température est supérieure à 10degrés et inférieure à (ou égale à) 20, alors enfilez un pull
  • Si la température est supérieure à 0degrés et inférieure à (ou égale à) 10, alors enfilez un imperméable
  • Si la température est inférieure à 0degrés, mettez un manteau.

Voici comment cela peut être représenté dans le code :

int temperature = 9;

if (temperature > 20) {
   System.out.println("put on a shirt");
} else { // Here the temperature is less than (or equal to) 20
   if (temperature > 10) {
      System.out.println("put on a sweater");
   } else { // Here the temperature is less than (or equal to) 10
      if (temperature > 0) {
         System.out.println("put on a raincoat");
      } else // Here the temperature is less than 0
         System.out.println("put on a coat");
   }
}

If-elseles instructions peuvent être imbriquées les unes dans les autres . Cela permet d'implémenter une logique assez complexe dans un programme.

Cependant, les programmeurs écrivent généralement cette construction un peu différemment :

int temperature = 9;

if (temperature > 20) {
   System.out.println("put on a shirt");
} else if (temperature > 10) { // Here the temperature is less than (or equal to) 20
   System.out.println("put on a sweater");
} else if (temperature > 0) { // Here the temperature is less than (or equal to) 10
   System.out.println("put on a raincoat");
} else { // Here the temperature is less than 0
   System.out.println("put on a coat");
}

Les deux exemples donnés sont équivalents, mais le second est plus facile à comprendre.


2. Nuances du elsebloc

Un point important :

Si vous n'utilisez pas d'accolades dans une if-elseconstruction, alors le elsefait référence au précédent le plus proche if.

Exemple:

Notre code Comment cela fonctionnera-t-il
int age = 65;

if (age < 60)
   if (age > 20)
      System.out.println("You must work");
else
   System.out.println("You don't have to work");
int age = 65;

if (age < 60) {
   if (age > 20)
     System.out.println("You must work");
   else
     System.out.println("You don't have to work");
}

Si vous regardez le code sur la gauche, il semble que la sortie d'écran sera "Vous n'avez pas à travailler". Mais ce n'est pas le cas. En réalité, le elsebloc et l'énoncé « Vous n'êtes pas obligé de travailler » sont associés au deuxième ifénoncé (le plus proche).

Dans le code de droite, les associés ifet elsesont surlignés en rouge. De plus, les accolades sont placées sans ambiguïté, montrant clairement quelles actions seront effectuées. La chaîne Vous n'avez pas à travailler n'est jamais affichée lorsque ageest supérieur à 60.



3. Exemple d'utilisation d'une if-elsedéclaration

Puisque nous avons if-elsesi bien exploré l'énoncé, donnons un exemple :

import java.util.Scanner;
public class Solution {
   public static void main(String[] args) {
     Scanner console = new Scanner(System.in); // Create a Scanner object
     int a = console.nextInt(); // Read the first number from the keyboard
     int b = console.nextInt(); // Read the second number from the keyboard
     if (a < b)                   // If a is less than b
       System.out.println(a);     // we display a
     else                         // otherwise
       System.out.println(b);     // we display b
   }
}
Affichage du minimum de deux nombres