Aide programmation JAVA

drspinoza Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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