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 :

Plusieur if () {} -> return; OBLIGATOIRE ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Par défaut Plusieur if () {} -> return; OBLIGATOIRE ?
    Bonjour,

    j'ai un peu de mal à comprendre le fonctionnement du return dans cette implémentation.


    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
     public void addSort (String toAdd) {
            
              Node aPlacer = new Node ();
              aPlacer.element = toAdd;
              
              if (first==null) {first=aPlacer;return;}                              
             
              if (toAdd.compareTo(first.element)<0){
                  aPlacer.next = first;
                  first = aPlacer;return;}
              
                  
              if (toAdd.compareTo(first.element)>=0){
                  Node current=new Node ();
                  current=first;
                  try {
                  while (toAdd.compareTo(current.next.element)>=0){
                      current=current.next;}
                  
                  aPlacer.next =current.next;                                                     
                  current.next = aPlacer;return;
    
              }catch (NullPointerException e) {current.next=aPlacer;}                }
        }
    Malgré que l'effet est celui désiré, je me demande ce
    que fait le return exactement ?
    Il stop l'exécution du code dans le if mais,
    on dirait plutôt que dès qu'un return est rencontré, il arrête l'exécution de toute la méthode addSort et pas juste la boucle if ciblée !?!

    Merci

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 702
    Par défaut
    En effet return termine la méthode en cours même si on se trouve a l'intérieur d'une boucle.

    Pour sortir d'une boucle comme un while ou un for sans interrompre la totalité de la méthode, il faut utiliser break.
    Cependant, le bloc de code d'un if n'est pas une boucle.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/08/2008, 10h44
  2. plusieurs return dans une fonction?
    Par contremaitre dans le forum C
    Réponses: 27
    Dernier message: 21/02/2008, 09h35
  3. plusieurs session_start() obligatoires ?
    Par mulot49 dans le forum Langage
    Réponses: 3
    Dernier message: 15/05/2007, 14h30
  4. Réponses: 1
    Dernier message: 16/04/2007, 14h09
  5. fonction return () avec retour de plusieurs valeurs
    Par nuphius dans le forum Langage
    Réponses: 4
    Dernier message: 06/01/2007, 17h44

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