Java : condition avec plusieurs "sinon"

Résolu
Bonjour,

J'ai un petit souci au niveau des condition, l'exercice étant de mettre les chiffre introduit dans l'ordre croissant, j'ai pu écrire tout le code mais je n'arrive pas a poser mes condition "sinon". j'aimerai trouver le problème mais je ne sais pas par ou commencer

le code :

import java.util.Scanner;

public class data {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int a,b,c;
System.out.println("Veuillez introduire vos 3 nombres :");
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
if (a<b && b<c)
{
System.out.println(a+", "+b+", "+c);
}
elseif (b<c && c<a);
{
System.out.println(b+", "+c+", "+a);
}
elseif (c<a && a<b);
{
System.out.println(c+", "+a+", "+b);
}
elseif (a<c && c<b);
{
System.out.println(a+", "+c+", "+b);
}
elseif (b<a && a<c);
{
System.out.println(b+", "+a+", "+c);
}
elseif (c<b && b<a);
{
System.out.println(c+", "+b+", "+a);
}
}

private static void elseif(boolean b) {
// TODO Auto-generated method stub

}
}

Quand j'execute il me donne ceci :

Veuillez introduire vos 3 nombres :
1
2
3
1, 2, 3
2, 3, 1
3, 1, 2
1, 3, 2
2, 1, 3
3, 2, 1

Merci

2 réponses

  1. Contributeur
    Bonjour, pourquoi ne pas placer par un tableau et ensuite faire un tri sur celui ci ?
    1. Modérateur
      Ta méthode elseif (qui ne fait rien !) ne pourra jamais remplacer les instructions else et if qu'il faudrait mettre ici !

      if (a<b && b<c)
      {
      	System.out.println(a+", "+b+", "+c);
      }
      else if (b<c && c<a)
      {
      	System.out.println(b+", "+c+", "+a);
      } 
      else if (c<a && a<b)
      {
      	System.out.println(c+", "+a+", "+b);
      }
      else if (a<c && c<b)
      {
      	System.out.println(a+", "+c+", "+b);
      }
      else if (b<a && a<c)
      {
      	System.out.println(b+", "+a+", "+c);
      }
      else if (c<b && b<a)
      {
      	System.out.println(c+", "+b+", "+a);
      }

      Remarque :
      1) tu ne gères pas le cas où il y a des égalités !
      2) ton code peut se simplifier en imbriquant les if les un dans les autres

      if (a<b)
      {
      	if (b<c)
      	{
      		System.out.println(a+", "+b+", "+c);
      	}
      	else // b>=c
      	{
      		...
      	}
      }
      else // a>=b
      {
      	// ...
      }
      1. Ok merci, j'ai reussi. Mais la methode du tableau ma l'air pas mal aussi (un ami la fais mais ne me la pas expliquer, trop "occuper") c'est plus rapide a "coder"??
      2. Modérateur
        La méthode du tableau est surtout très générale, car elle fonctionnera de la même façon pour 2, 3, 4, ... ou 100000 valeurs !