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

Langage Java Discussion :

[debutant]pb de return dans une méthode


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut [debutant]pb de return dans une méthode
    Bonjour,
    j'ai une méthode qui me permet de me renvoyer la valeur d'un entier qui est placée à la 3ème case d'une liste.
    Mais j'ai toujours une erreur concernant le type d'objet que doit retourner cette méthode "this method must return a result of type int" , pourtant j'ai bien mis return à la fin de ce code pour "valeur" qui est de type int
    Est-ce que vous auriez une explication?

    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
    public static int getRV(int V, int utilisateur) {
    	int[] RVList = new int[0];
    	int valeur = 0;
     
    	for (int[] dataLine : data) {
    		if (dataLine[3] == V) {
    			int[] newList = new int[RVList.length + 1];
     
    			for (int i = 0; i < RVList.length; i++) {
    				valeur = Integer.valueOf(dataLine[3]);
    			}
    		}
    		return valeur;
    	}
    }
    Merci!!!

  2. #2
    Membre éclairé

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Points : 803
    Points
    803
    Par défaut
    je vais peut etre dire une bétise mais je crois que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    valeur = Integer.valueOf(dataLine[3]);
    retourne un objet et non pas un int. ==> à vérifier

    edit:
    alors j'ai vérifier et effectivement tu renvois un objet mais ca n'est pas la l'erreur ;
    valueOf(int i)
    Returns a Integer instance representing the specified int value.
    source: http://java.sun.com/j2se/1.5.0/docs/api/
    deux choses : premierement dataline[3] est déja un int donc :
    devrai suffire
    deuxiemement ton return est a l'interieur de ton for donc si ta liste est vide tu ne retourne jamais de valeur d'ou ton erreur...

    voila l'analyse que j'ai faite mais je peux me tromper...
    "La seule chose dont je sois certain, c'est que je doute"
    j'ai cassé ma boule de cristal veuillez être clair et précis dans vos propos
    compilateur - 1 nayah - 0
    PS : je suis un

  3. #3
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    Imagine le cas où ta liste est vide.
    Dans ce cas on ne passe pas dans la boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int[] dataLine : data)
    Donc on ne retourne rien.

    Ajoute un "return -1" par exemple en dehors de la boucle.
    .-*K.E.U.B*-.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    Par défaut
    Bonjour,

    Navré mais je ne comprends vraiment pas ton code...surtout les boucles.

    Pour récupérer le 3ème élement d'un tableau tu dois :
    - vérifier que le tableau contient bien au moins 3 éléments
    - récupérer le 3ème élément
    - éventuellement le formater

    A noter que l'index d'un tableau commence à 0. Pour récupérer le 3ème élément il faut faire tab[2].

    Ton pb de compil vient du fait que le return peut ne pas être atteint.

  5. #5
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Benouze Voir le message
    Bonjour,

    Navré mais je ne comprends vraiment pas ton code...surtout les boucles.

    Pour récupérer le 3ème élement d'un tableau tu dois :
    - vérifier que le tableau contient bien au moins 3 éléments
    - récupérer le 3ème élément
    - éventuellement le formater

    A noter que l'index d'un tableau commence à 0. Pour récupérer le 3ème élément il faut faire tab[2].

    Ton pb de compil vient du fait que le return peut ne pas être atteint.
    ----------
    En fait ma classe contient déja au début une autre méthode qui permet de parser un fichier et de créer (data = new int [items.size()][3], j'ai utilisé aussi un Tokenizer pour distinguer entre les 3 items (int V = Integer.parseInt(splitter.nextToken());...)
    et là ce que je veux c juste une simple méthode qui me retourne la valeur de l'entier V.

  6. #6
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    Si ça retourne un objet, je dois faire comment pour que "valeur" récupére l'entier de la 3ème case de la liste?
    T'as une idée?

  7. #7
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    je viens de mettre valeur = dataLine[3], j'ai toujours la même erreur, donc ça vient probablement du cas où on ne retourne rien.
    je peux l'exprimer comment le return -1

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Points : 310
    Points
    310
    Par défaut
    Tu n'as qu'à déplacer ton return :

    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
    public static int getRV(int V, int utilisateur) {
    	int[] RVList = new int[0];
    	int valeur = 0;
     
    	for (int[] dataLine : data) {
    		if (dataLine[3] == V) {
    			int[] newList = new int[RVList.length + 1];
     
    			for (int i = 0; i < RVList.length; i++) {
    				valeur = Integer.valueOf(dataLine[3]);
    			}
    		}
    		// return valeur;
    	}
         return valeur;
    }
    A noter que je ne comprend toujours pas l'intérêt de tes 2 boucles for...ni celui de ton code en fait

    Si ton but c'est seulement de retourner le 3ème élément d'un tableau un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return Integer.valueOf(dataLine[2]);
    suffit...

  9. #9
    Membre éclairé

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Points : 803
    Points
    803
    Par défaut
    une petite question tu veux retourner que la valeur a la fin de ta boucle? ou toutes les valeurs que prendra ta variable "valeur" dans la boucle ?
    dans le premier cas benouze a raison...

    je suis pas sur d'avoir été clair la
    "La seule chose dont je sois certain, c'est que je doute"
    j'ai cassé ma boule de cristal veuillez être clair et précis dans vos propos
    compilateur - 1 nayah - 0
    PS : je suis un

  10. #10
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut
    En fait je veux récupérer toutes les valeurs que peut prendre "valeur" lors de l'exécution de la boucle.

Discussions similaires

  1. passer la valeur d'un return dans une méthode
    Par belukrin dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2006, 06h58
  2. [Debutant] Mettre des images dans une Toolbar
    Par Beleim dans le forum Windows
    Réponses: 11
    Dernier message: 02/03/2006, 23h31
  3. [debutant] insertion d'éléments dans une List
    Par gwenou60 dans le forum Composants
    Réponses: 1
    Dernier message: 05/12/2005, 09h59
  4. [debutant] rajouter un applet dans une page JSP
    Par mlequim dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/07/2005, 14h50
  5. Réponses: 2
    Dernier message: 15/11/2004, 15h12

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