Probleme code java

Bonjour,
jai un probleme avec la ligne if dans le code suivant

String reponse=Lire.chaine();
String reponse1="oui";
String reponse2="non";
if (reponse==reponse1)

jutilise netbeans et g un carré jaune avec un point dexclamation a linterieur a gauche et kan je clik dessus g le message suivant

compating String using == or !=

kan je compil tt se passe bien mais kan je choisi la reponse ki permet au contenu du if de safficher il ne va pas plus loin il sarrete et fait comme si yavait pas dutt de if

merci davance pour voaide euh et merci si vs pouvez corriger si ya bien une erreur
Configuration: Windows Vista
Internet Explorer 7.0

11 réponses

  1. g essayé

    euh g pire il me dit qu'il ya une erreur

    sinon c koi lerreur dans ce ke g ecri

    je veu tt simplement ke mon programme pose une kest et ke la personne repond oui ou non et le programme affich la saisi et en fonction de sa il passe dans le if ou pas
    1. Salut !...

      Remplacer if (reponse.equals(reponse1)= true) )
      par if (reponse.equals("oui"))
      {
      ----
      }
      else ----
      1. cette fois ci tt fonctionne merci pour votre aide

        par contre g encore deux question

        c'etait koi l'erreur dans ce ke javais fais ?

        cad=====> String reponse=Lire.chaine();
        String reponse1="oui";
        String reponse2="non";
        if (reponse==reponse1)

        dans ça==> if (reponse.equals("oui")) que signifi equals ?

        pkoi avec equals tt fonction kan je mé == ca fonctionne pas ?
        1. Le truc, c'est que .equals() te compare deux chaines de caractères : celle qui est avant ton .equals et celle entre parenthèses. Si tu veux, tu pourrais remplacer la chaine de caractère "oui", par ta variable qui contient "oui". Aussi, le problème que tu avais était lié au fait que tu mettais un booléen dans ton if qui n'était pas syntaxiquement correct, enfin je pense (j'en suis pas sur...)

          Quand tu mets if( reponse.equals("oui") ) c'est comme si ce qui était entre parenthèses était à true. Pour avoir false il te suffit de faire ca : if( !reponse.equals("oui") ).

          Voila, j'espere t'avoir aidé ;)
          1. Merci pour ta reponse ^^ c'est bcp plus clair

            g just une derniere question par rapport à ce que ta dis

            equal ser a comparer les chaines de cractere et rien d'autre donc pas de int pas de double et pas autre chose c'est bien ca ?
            1. Salut,

              Pour plus de detailles seulement:

              les int et double ne sont pas des vrais objets, se sont des instances de "primitives "et non pas de classes!
              Toutes les instances de primitives (même primitives) peuvent être comparrées à l'aide de "==".

              String est une classe, ce qui rend toutes les chaines de caractères des objets.

              la methode equals est déclarer même dans la classe racine "object", c'est une méthode qui renvoit un booléen.
              1. Je n'aurais pas dit mieux :) Surtout que j'avais complètement oublié :p

                Donc en gros, avec un .equals tu peux comparer deux variables qui ont pout type des classes. Genre String ou Integer. Pour les types de base, comme l'a dit tarek_dotzero, c'est avec ==.
                1. Ajoutons que bien entendu on peut aussi ecrire :
                  if (reponse.equals(reponse1)) // pour tester "oui"
                  ou if (reponse.equals(reponse2)) // pour tester "non"
                  {
                  ----
                  }
                  else ----

                  24 message(s) posté(s) depuis le dimanche 15 janvier 2006