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 :

erreur boucle recursive


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 181
    Points : 82
    Points
    82
    Par défaut erreur boucle recursive
    le programme calcul la somme de n carré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class recursive {
    	static int calcul(int n)
    	{
    		if (n==0) {return 0;}
    		if (n<0){System.out.println("pas possible");}
    		else {return ((n*n)+calcul(n-1));} 
    	}
     
        public static void main(String[] args) {
        	int g=2;
        	// TODO, add your application code
        	System.out.println(calcul(3));
        }
    }
    sur la ligne 6 j'ai une erreur return statement
    merci

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Tu peux poster la stacktrace ?

    Sinon, la condition ci-dessous ne fait qu'un System.out.println alors que la fonction doit toujours retourner un int
    donc ça ne va pas fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (n<0){System.out.println("pas possible");}
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Pour préciser ce qui est dit précédemment, si tu fais une fonction qui retourne un int
    alors cette fonction doit retourner un entier dans tous les cas.
    Du coup, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (n < 0) {System.out.println("pas possible");
    introduit la possibilité de ne rien renvoyer (sauf un commentaire sur la console mais ça ne compte pas)
    Alors le compilateur refuse de compiler ce code.

    Par ailleurs, les lignes suivantes ne servent à rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        	int g=2;
        	// TODO, add your application code

    En débarrassant le code de ce qui est inutile ou ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class Recursive {
     
        static int calcul(int n) {
            if (n == 0) {return 0;}
    //        if (n < 0) {System.out.println("pas possible");
            else {
                return ((n * n) + calcul(n - 1));
            }
        }
     
        public static void main(String[] args) {
            System.out.println(calcul(3));
        }
    }
    Au fait, le nom d'une classe commence par une majuscule ; donc recursive -> Recursive
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. erreur boucle de redirection firefox
    Par calitom dans le forum Débuter
    Réponses: 3
    Dernier message: 10/12/2008, 11h02
  2. [VBA-E] erreur boucle for each
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h38
  3. Probleme d'insertion de fichiers – Boucle recursive ?
    Par LLEJEUNE1 dans le forum Général Python
    Réponses: 1
    Dernier message: 09/02/2006, 17h35
  4. Erreur: "Boucle et TStringList"
    Par Romain² dans le forum Langage
    Réponses: 25
    Dernier message: 22/12/2005, 22h26
  5. Erreur Deep recursion et de conso ram :(
    Par mobscene dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 12h06

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