Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arreter une methode

    14 novembre 2008 à 5:21:10

    Bonjour,

    J'ai une méthode qui possède quelque condition et ne renvoie aucune valeur. C'est une fonction récursive qui traverse une arbre binaire. Le problème est quand j'ai fini de parcourir mon arbre lorsque ma valeur recherché est trouvé, je veux arrêter la méthode sans avoir a me rendre à la fin de la recherche de l'arbre. Y-a-t-il un moyen d'arrêter prématurément une méthode? Une commande du genre endMethod, exit_method ...

    Je ne sais pas si c'est parce que je suis fatigué en ce moment, mais je ne sais vraiment pas comment faire...

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2008 à 5:56:06

      Tout simplement... return ?
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        14 novembre 2008 à 18:51:44

        Le return void c'est pas terrible, enfin c'est mon point de vue, mieux vaudrait peut être placer la suite de ta méthode dans une structure conditionnelle si c'est possible.
        • Partager sur Facebook
        • Partager sur Twitter
          14 novembre 2008 à 22:41:31

          En même temps, une méthode qui parcoure un arbre pour chercher une valeur ... devrait renvoyer au moins un booleen, non ? (si la valeur a été trouvée, ou non).
          • Partager sur Facebook
          • Partager sur Twitter
            14 novembre 2008 à 22:44:12

            @shakhal quel est le probleme avec un return; sans argument ?
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              15 novembre 2008 à 8:14:50

              Ca démontre une faiblesse dans la conception de la méthode ou de l'algorithme plus généralement.
              Le but du return comme son nom l'indique est avant tout de renvoyer une valeur, pas de servir de porte de sortie.

              Citation : wikipedia return statement

              considering that, when it is used to "return early", it suffers from the same sort of readability problems as the GOTO statement.



              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                15 novembre 2008 à 11:52:35

                Je dit des bêtises surement mais une fonction récursive ne doit pas retourner une valeur par définition ?
                • Partager sur Facebook
                • Partager sur Twitter
                  15 novembre 2008 à 12:04:13

                  Hum... au pire, tu mets un bool dans la fonction et une condition avant le nouvel appel de la fonction. Mais me semble que mon prof avait utilisé un return dans son exemple de récursivité...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 novembre 2008 à 12:45:31

                    Citation

                    Ca démontre une faiblesse dans la conception de la méthode ou de l'algorithme plus généralement.
                    Le but du return comme son nom l'indique est avant tout de renvoyer une valeur, pas de servir de porte de sortie.


                    Pas d'accord. A ce moment là on pourrait en dire autant du break ou du continue.
                    Et pas lisible ? Pas si sûr. IL peut parfois être préférable de faire if (...) return plutôt que if (!...) { ... } si on ne fait rien après le bloc.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      15 novembre 2008 à 14:17:33

                      Comme je l'ai dit auparavant c'est une question de point de vue, chacun ses habitudes et ses méthodes.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 novembre 2008 à 15:59:06

                        Ok, Merci de vos réponse, finalement ma fonction était composé de plusieurs If & else If. J'ai tout simplement ajouté une première condition qui vérifie une variable boolean globale qui indique si un l'élément fut deja ajouté. Assez simple et efficace... j'ai honte d'avoir posté pour un problème aussi stupide... Le café est des heures prolongées snas sommeil devant des centaines de ligne de code peut vous rendre complètement fou...Si certain ici veulent faire des études en génie informatique, j'espère que vous aimez le café :)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 novembre 2008 à 23:23:50

                          Citation

                          Le café et des heures prolongées sans sommeil devant des centaines de ligne de code peut vous rendre complètement fou...Si certain ici veulent faire des
                          études en génie informatique, j'espère que vous aimez le café


                          C'est le café qui te rend fou, pas les lignes de code.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            16 novembre 2008 à 11:05:58

                            Citation : ggg

                            Si certain ici veulent faire des études en génie informatique, j'espère que vous aimez le café :)



                            Si une simple fonction récursive de rend aussi fou arrête de suite les études d'informatiques ;) car tu as des choses 100 fois plus compliqués auxquelles tu seras confrontés...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 novembre 2008 à 4:34:16

                              C'est pas la fontction récursive qui me rend fou, c'est le heap autour.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Arreter une methode

                              × 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