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

Java Discussion :

erreur de compilation


Sujet :

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 de compilation
    j'ai créé une fonction récursive la somme des carrés des nombre dans le cas ou le nombre entré est négatif je fais appel à une classe Pasdefini mais la j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class sommecarre {
        public static int somCarres ( int n ){
     
    if (n<0){throw new Pasdefini();
    }
    if (n==0){return 0;}
    else{
     
    return (n*n)+ somCarres ( n−1) ;}
     
    }
     
     
    class Pasdefini extends Error{};
     
        public static void main(String[] args) {
     
        System.out.println(somCarres(3));	
        }
    }
    en face de la ligne 4 j'ai le message
    error: non-static variable this cannot be referenced from a static context

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    la classe Pasdefini devrait être déclarée en dehors de la classe SommeCarre, comme une classe indépendante. Ce serait vraiment plus pratique et ça éliminerait ce problème.

    Elle devrait aussi étendre RuntimeException, pas Error. Error c'est pour les erreurs de fonctionnement de la plate-forme Java, comme une saturation de la mémoire ou une impossibilité de charger une classe.
    Là c'est juste une petite erreur d'algèbre causée par l'appelant, ça devrait être une simple Exception.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    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
    merci
    mais j'ai une autre question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class sommecarre {
    public static double somCarres ( double n ){
     
    if (n<0){throw new  Pasdefini();
    }
    if (n==0){return 0;}
    else{
     
    return (n*n)+ somCarres ( n-1) ;}
     
    }
     
     
    public static class Pasdefini extends Error{};
     
        public static void main(String[] args) {
     
        System.out.println(somCarres(10000));	
     
        }   }
    j'ai le message stackoverflow a 10000 en utilisant des doubles ya t il mieux que double?

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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