Erreur Unreachable statement avec SringTokenizer [Résolu]

Signaler
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
-
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
-
Bonjour a tous

Je dois créer une méthode qui va retourner deux String extrait d'une chaine de caractères.

voici ce que j'ai fais.

public String AfficherNom()
{

String a = getnom();
StringTokenizer nom = new StringTokenizer(a, ",");
String b = nom.nextToken();
String c = nom.nextToken();

return b;
return c;

}


Quand je compile j'ai une erreur unreachable Statement !? est ce que quelqu'un pourrait m?aider S.V.P , merci d'avance

7 réponses

Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
25
Salut,

Hum hum,

à mon avis, tu mets la charrue avant les bœufs. Une méthode renvoit soit 1 objet / type primitif, soit rien du tout (void). La signature de ta méthode indique qu'elle renvoit 1 chaîne de caractères (String). À partir de la ligne return b;, ta méthode est terminée. D'où ton erreur sur la ligne return c; : "Unreachable statement : instruction non atteignable".

Si tu veux regroupée plusieurs chaînes de caractères, utilise un tableau ou une liste :

public String[] afficherNom() {

        String a = getnom();
        StringTokenizer nom = new StringTokenizer(a, ",");
        String b = nom.nextToken();
        String c = nom.nextToken();

        String[] nomPrenom = { b, c };

        return nomPrenom;

    }
    
    public List<String> afficherNomListe() {

        String a = getnom();
        StringTokenizer nom = new StringTokenizer(a, ",");
        String b = nom.nextToken();
        String c = nom.nextToken();

        List<String> nomPrenom = new ArrayList<String>(2);
        
        nomPrenom.add(b);
        nomPrenom.add(c);

        return nomPrenom;

    }


Quelques autres remarques en passant :
- essaie de commenter tes méthodes, même les plus simples, le minimum est le commentaire javadoc
- essaie de donner des noms parlants à tes variables (pas a, b, c...)
- essaie de respecter les conventions de nommage
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
25
Désolé pour les fautes d'orthographe...
Si tu veux regroupER
des noms parlant
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
25
des noms parlants...
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

Merci pout on aide ! C'est apprécier
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

Quand je veux afficher le tableau j'ai le message

non-varargs call of varargs method with inexact argument type for last parameter

System.out.printf(" Le nom est : %s[0] et le prenom est: %s[1] \n", afficherNom());

J'ai surement mal formulé ma commande.....
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
19 décembre 2016
25
Étonnant, tu utilises quelle version de Java, quel IDE?
Les [0] et [1] sont inutiles.
Personnellement je n'utilise jamais printf, tu viens du monde C/C++ ?

Au passage, chez moi (Java 1.6 / 1.7 + Eclipse 3.5.2), ton code fonctionne.
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

Salut

J'utilise JDK 1.6, j'ai entendu que je devais redéfinir ToString !?
Est ce que ca te dit quelque chose ?
Pour l'instant j'ai initialisé un tableau à l'extérieur de la classe et ca fonctionne

String [] decompose = afficherNom();

Oui j'ai fais un peux de C a l'école mais je suis débutant.

Merci encore et bonne fin de semaine