Aide programmation JAVA

drspinoza Messages postés 55 Statut Membre - 18 déc. 2015 à 03:12
KX Messages postés 19031 Statut Modérateur -
Bonjour,

J'ai une méthode qui ne fonctionne pas alors que celle complètement identique fonctionne parfaitement.

Voici ma méthode qui ne fonctionne pas :
public static void afficherDescriptionVehicule (int caseTab ,Vehicule[]tabV){
      System.out.print ("Entrez une description : ");
       String description = Clavier.lireString();
        for(int compteur = 0; compteur < caseTab; compteur++){
           if(description == tabV[compteur].getDescription()){
                System.out.println ();
                System.out.print   ("ENTRER pour afficher prochain vehicule");
               Clavier.lireFinLigne();
                System.out.println(tabV[compteur].toString());
           } 
        }
}


Alors que celle-ci quasiment identique fonctionne tres bien.

 public static void afficherCategorieVehicule (int caseTab ,Vehicule[]tabV){        
       System.out.println("1-terrestre, 2-aquatique, 3-aerien, 4-amphibie");
       System.out.print  ("Entrez une categorie : ");
        int categorie = Clavier.lireInt();
         for(int compteur = 0; compteur < caseTab; compteur++){
             if(categorie == tabV[compteur].getCategorie()){
              System.out.println();
              System.out.print  ("[ENTRER] pour afficher prochain vehicule. ");
             Clavier.lireFinLigne();
              System.out.println(tabV[compteur].toString());
           }
        }    
}  


Merci de m'aider à comprendre.

A voir également:

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
18 déc. 2015 à 07:35
Bonjour,

La comparaison de deux objets avec == compare les références des objets, pas les valeurs de ces objets.
Tu peux donc avoir deux String égaux mais qui ne sont pas comparables, ce qui arrive par exemple quand un String vient de lireClavier...

Utilises la méthode equals pour comparer deux String :
if(description.equals(tabV[compteur].getDescription())){
0