Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] Do while, marche pas!

    15 novembre 2006 à 18:20:52

    Bonjour! J'ai un problème avec ceci :


    do
    {
      rep = JOptionPane.showInputDialog(
            "Desirez-vous continuer avec une nouveau candidat (O/N)" ).charAt(0);
    } while( rep != 'N' && rep != 'n' );


    J'entre belle et bien la lettre n dans le Input, mais.. ça répète encore les instructions. Je ne comprend pas trop :|

    Merci de bien vouloir m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
      15 novembre 2006 à 18:34:37

      ta condition est pas bonne , l'operateur && c'est ET
      donc la tu veut que rep soit equal a N et a n , ce qui est pas possible
      remplace && par ||
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        15 novembre 2006 à 19:06:29

        Non, la condition est bonne, c'est si rep est différent de n ET N, avec OU si rep valait n il serait quand même différent de N >> condition, vraie, on continue.
        Après sinon je vois pas pourquoi c'est pas bon :)
        • Partager sur Facebook
        • Partager sur Twitter
          15 novembre 2006 à 19:08:35

          haa oui !
          j'avait pas vu le "!" :)
          • Partager sur Facebook
          • Partager sur Twitter
            15 novembre 2006 à 19:10:03

            affiche quelquepart ce que contient "rep" pour être sur qu'il contient bien la lettre entrée.
            • Partager sur Facebook
            • Partager sur Twitter
              16 novembre 2006 à 11:07:44

              Il me semble qu'un JOtionPane.showInputDialog() retour un String.... donc dans ce cas la condition serai plutôt:

              do
              {
                rep = JOptionPane.showInputDialog(
                      "Desirez-vous continuer avec une nouveau candidat (O/N)" ).charAt(0);
              } while( !rep.Equals("N") && !rep.Equals("n") );

              • Partager sur Facebook
              • Partager sur Twitter
                16 novembre 2006 à 13:36:43

                je pense que kedare est dans le vrai
                si on regarde la condition dans le while elle ne peut jamais etre satisfaite:
                TANT QUE "rep different de N" et "rep different de n"

                si on prend "n" on aura:
                -rep different de N et rep = n
                ==> condition vrai, on continue la boucle
                de meme pour N

                alors que si on prend la condition OU
                -rep different de N ou rep = n
                ==> condition fausse, on sort enfin de la boucle

                j'espere que je me suis pas craké ^^
                ++



                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  16 novembre 2006 à 13:40:29

                  Déjà dit... si rep='n' alors la condition est vraie, rep ne sera plus différent de 'n', donc boum! cndition retourne false.
                  cysboy> Tu dois avoir raison, faut vérifier sur la doc.

                  Edit: c'est même sûr, regardez l'exemple donné:
                  String inputValue = JOptionPane.showInputDialog("Please input a value");
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 novembre 2006 à 16:32:36

                    Citation : cysboy

                    Il me semble qu'un JOtionPane.showInputDialog() retour un String....



                    Oui, mais la méthode charAt() retourne un caractère.

                    Citation : Lord Boo

                    si on prend "n" on aura:
                    -rep different de N et rep = n
                    ==> condition vrai, on continue la boucle
                    de meme pour N

                    alors que si on prend la condition OU
                    -rep different de N ou rep = n
                    ==> condition fausse, on sort enfin de la boucle



                    Tu confonds les OU et ET logiques.
                    Si on entre n:
                    rep != 'n' est FAUX
                    rep != 'N' est VRAI
                    VRAI ET FAUX = FAUX (on arrête la boucle)
                    VRAI OU FAUX = VRAI (on continue)

                    Sinon, dans le code que tu nous donnes il n'y a pas de problème. Je l'ai testé et il marche, donc s'il y a une erreur elle est ailleurs. Il n'y a que ça comme code dans le bloc do? Est-ce que tu ne modifies pas rep quelque part?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 novembre 2006 à 20:53:21

                      oups... j'avais pas vu le CharAt()....
                      Perco, je confirme ce que dit AIK!
                      Ton problème doit venir d'ailleur! (j'ai testé et ça marchce!;))
                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 novembre 2006 à 21:24:06

                        je crois me rappeler que pour 'encadrer' un Char , il faut utiliser '.' et pas "." , a essayer
                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 novembre 2006 à 22:48:59

                          Le problème venant d'un do while dans le fichier globale.

                          Merci de votre aide, ça m'a éclaircie sur les dowhile :)

                          Merci!
                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 novembre 2006 à 9:03:56

                            Je crois que tu as trouvé!! h2o!

                            donc dans la condition c'est:
                            rep != 'N' && rep != 'n'


                            Et là çà devrai marcher!:D
                            • Partager sur Facebook
                            • Partager sur Twitter

                            [JAVA] Do while, marche pas!

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown