IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Problème de Récursivité


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut Problème de Récursivité
    Bonjour,

    J'ai un petit soucis avec la récursivité d'une méthode ..
    Je pense que celle-ci est bien rédigée. Mais en fait ma question est plutôt générale et ne s'applique pas seulement à ce que je suis en train de faire.

    Dans une récursivité, on appelle plusieurs fois une même méthode et on 'descend' d'étage a chaque fois ( je vois pas comment le dire autrement ^^ ). Une fois arrivé tout au fond , on remonte out et on sort notre résultat.

    Mon problème est que le résultat que je veux "return" a la fin de ma boucle c'est la valeur que j'atteint "tout en bas" , or celle-ci est perdue quand le programme remonte dans les étages.

    Avez vous une solution ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui : ne pas perdre cette valeur. À la place, la "return" à chaque étage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut
    Merci pour ta réponse rapide.
    Je vais essayer ça .

    Et comment modifier une variable avec une récursivité et faire en sorte que cette variable est extérieure a la récursivité.

    Du genre , si je modifie la variable "n" a l'étage -4 je veux que ça ait un incident sur tout les autre étages après .

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Hornetmix Voir le message
    Et comment modifier une variable avec une récursivité et faire en sorte que cette variable est extérieure a la récursivité.

    Du genre , si je modifie la variable "n" a l'étage -4 je veux que ça ait un incident sur tout les autre étages après .
    C'est plus embêtant.

    Il faudrait créer une classe, genre Context, qui contient cette variable n et toute autre que tu aurais dans le même cas. Et passer une instance de cette classe Context, en paramètre de chaque appel récursif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class Context {
      int n;
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public int recursiveMultiplication(int n, int times, Context context) {
      if(times < 0) {
        return -recursiveMultiplication(n, -times, context);
      }
      if(times == 0) {
        context.n = 42;
        return 0;
      }
      int result = recursiveMultiplication(n, times-1, context);
      System.out.println("La valeur magique est : " + context.n);
      return result;
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Citation Envoyé par Hornetmix Voir le message
    Bonjour,

    Dans une récursivité, on appelle plusieurs fois une même méthode et on 'descend' d'étage a chaque fois ( je vois pas comment le dire autrement ^^ ). Une fois arrivé tout au fond , on remonte out et on sort notre résultat.
    Après faut voir récursivité terminale et non terminale, je pense que ça dépend des cas =)

Discussions similaires

  1. Problème Arnaud <> récursivité
    Par Kanter dans le forum Delphi
    Réponses: 13
    Dernier message: 20/02/2007, 16h54
  2. Problème de récursivité
    Par nmathon dans le forum Delphi
    Réponses: 5
    Dernier message: 12/01/2007, 16h40
  3. Problème de récursivité en Prolog
    Par poooky dans le forum Prolog
    Réponses: 5
    Dernier message: 04/01/2007, 17h35
  4. Problème de récursivité
    Par mehdi.berra dans le forum C
    Réponses: 8
    Dernier message: 14/12/2006, 17h42
  5. Problème de récursivité
    Par tazmania dans le forum C
    Réponses: 24
    Dernier message: 14/12/2005, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo