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 :

return, signification et utilité


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut return, signification et utilité
    Salut à tous,

    je suis un novice en matière de programmation et j'aimerai savoir à quoi sert et que signifie "return" en java.

    Merci!

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    le mot clé return sert à quitter une méthode et à retourner (d'ou le nom) à la méthode appelante.

    lorsque la méthode est du type void, return suffit pour quitter la méthode.

    exemple :

    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 Exemple() {
     
           public static void main(String[] args) {
                  System.out.println("avant appel");
                  test();
                  System.out.println("après appel");
           }
     
           public static void test() {
                System.out.println("dans test()");
                return; // retourne à la méthode qui a appeler test();
           }
     
    }
    l'exécution de ce programme va afficher dans la console :

    avant appel
    dans test()
    après appel

    si la méthode à un type, return permet de retourner un résultat, du type de la méthode

    exemple :
    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 class Exemple2() {
     
           public static void main(String[] args) {
                  System.out.println("avant appel");
                  int resultat=test();
                  System.out.println("après appel");
                  System.out.println("résultat : " + resultat);
           }
     
           public static int test() {
                System.out.println("dans test()");
                return 5; // retourne à la méthode qui a appeler test() en retournant la valeur 5;
           }
     
    }
    va afficher :


    l'exécution de ce programme va afficher dans la console :

    avant appel
    dans test()
    après appel
    résultat : 5


    bien que cela soit interdit en programmation dite structurée (un seul point d'entrée, un seul point de sortie), on peut mettre return n'importe ou dans la méthode, mais le code qui suit le return doit pouvoir être éxécuter pour au moins une condition.

    exemple :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    public static class Exemple3() {
     
           public static void main(String[] args) {
                  boolean resultat=contient("abcd","cde");
           }
     
           /**
           * Teste si l'un de caractères contenus dans c est dans s
           */
           public static boolean contient(String s, String c) {
                 for(int i=0; i<s.length(); i++) {
                      for(int j=0; j<car.length(); j++) {
                            if ( s.charAt(i)==c.charAt(j) ) {
                                return true;
                            }
                      }
                 }
                 return false;
           }
     
           // version programmation structurée
           public static boolean contient2(String s, String c) {
                 boolean trouve=false;
                 for(int i=0; !trouve && i<s.length(); i++) {
                      for(int j=0; !trouve && j<car.length(); j++) {
                            if ( s.charAt(i)==c.charAt(j) ) {
                                trouve=true;
                            }
                      }
                 }
                 return trouve;
           }
     
           // version interdite car code non exécutable suivant le return
           /*public static boolean contient3(String s, String c) {
                 boolean trouve=false;
                 for(int i=0; !trouve && i<s.length(); i++) {
                      for(int j=0; !trouve && j<car.length(); j++) {
                            if ( s.charAt(i)==c.charAt(j) ) {
                                trouve=true;
                            }
                      }
                 }
                 return trouve;
                 // code qui suit non exécutable
                 if ( trouve ) {
                    System.out.println("trouvé");
                 }
           }*/
     
    }

    quand la méthode n'a pas de type, on est pas obligé de mettre return, la fin de la méthode fait la même chose (on reste évidement pas bloqué à la fin de la méthode)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Exemple4() {
     
           public static void main(String[] args) {
                  test("salut !");
                  test("ça va ?");
           }
     
           public static void test(String parametre) {
               System.out.println(parametre);
           }
     
    }
    affichera :

    salut !
    ça va ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Signification du "return wantarray"
    Par helkha86 dans le forum Langage
    Réponses: 2
    Dernier message: 21/05/2012, 17h04
  2. utilite de return en rexx
    Par sam01 dans le forum z/OS
    Réponses: 1
    Dernier message: 05/01/2009, 16h30
  3. quelle est la signification de "return (::"
    Par deubelte dans le forum C++
    Réponses: 5
    Dernier message: 12/12/2008, 18h30
  4. Significations des différents exit() et return()
    Par olivier857 dans le forum Réseau
    Réponses: 19
    Dernier message: 10/07/2006, 13h24
  5. [Indexation][SqlCE] Quelles significations et utilités ?
    Par david71 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/01/2006, 19h24

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