Salut, ici on cherche simplement a retourner celui de a ou b qui est le plus proche de 10, en cas d'egalité on retourne 0.

J'ai donc taper ça qui marche impec:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
public int close10(int a, int b) {
  int difA = Math.abs(10-a);
  int difB = Math.abs(10-b);
 
  if (difA < difB)
    return a;
  else if (difB < difA)
    return b;
  else
    return 0;
}
Mais il se trouve que ceci marche tout aussi bien:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
public int close10(int a, int b) {
  int difA = Math.abs(10-a);
  int difB = Math.abs(10-b);
 
  if (difA < difB)
    return a;
  if (difB < difA)        // la seule différence est sur cette ligne 7. Le "else if" est maintenant un simple if.
    return b;
  else
    return 0;
}
Ducoup j'ai du mal a comprendre dans quel cas "else if" apporte quelque chose de different qu'un simple "if" ?