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 :

Break et continue


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Par défaut Break et continue
    Bonjour,

    Le break est bien pratique pour sortir d'une boucle mais parait un peu trop facile. En particulier dans le cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(int i=0; i<tab.length(),i++){
      if (tab[i] == 4){
         bfind=true;
         break;
      }
    }
    Pouvez vous me dire si l'utilisation d'un break au sein d'une boucle for ou while est une bonne pratique? Le fait d'utiliser break a t il des conséquences négatives sur l'execution du programme (par exemple au niveau des optimisation des performances, ...) , ou si cela reviens au même de programmer sans les break?

    Je n'arrive pas à trouver de réponse argumentée à ce sujet.

    Merci par avance.

    Arnaud.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut
    Le déroulement de toutes les instructions d'itération peut être contrôlé de l'intérieur du corps de la boucle au moyen des instructions break et continue. L'instruction break sort de la boucle sans exécuter la suite des instructions. L'instruction continue arrête l'exécution de l'itération courante, et l'exécution reprend en début de boucle avec l'itération suivante.

    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
    //: c03:BreakAndContinue.java
    // Démonstration des mots clefs break et continue.
     
    public class BreakAndContinue {
      public static void main(String[] args) {
        for(int i = 0; i < 100; i++) {
          if(i == 74) break; // Sortie définitive de la boucle for
          if(i % 9 != 0) continue; // Continue avec l'itération suivante
          System.out.println(i);
        }
        int i = 0;
        // une "boucle infinie" :
        while(true) {
          i++;
          int j = i * 27;
          if(j == 1269) break; // Sortie de boucle
          if(i % 10 != 0) continue; // Début de boucle
          System.out.println(i);
        }
      }
    } //
    Dans la boucle for la valeur de i n'atteint jamais 100 car l'instruction break termine la boucle lorsque i prend la valeur 74. En principe, il ne faudrait pas utiliser break de cette manière, à moins que l'on ne connaisse pas le moment où la condition de fin arrivera. L'instruction continue provoque un branchement au début de la boucle d'itération (donc en incrémentant i) chaque fois que i n'est pas divisible par 9. Lorsqu'il l'est, la valeur est imprimée.

    La seconde partie montre une « boucle infinie » qui, théoriquement, ne devrait jamais s'arrêter. Toutefois, elle contient une instruction break lui permettant de le faire. De plus, l'instruction continue retourne au début de la boucle au lieu d'exécuter la fin, ainsi la seconde boucle n'imprime que lorsque la valeur de i est divisible par 10.

    http://www.google.fr/search?hl=fr&cl...a=lr%3Dlang_fr
    1er lien.

    @+


    NB : Le principe d’optimisation consiste à ne pas continuer à tester lorsque le résultat est connu.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Par défaut
    Merci pour ta réponse,

    Elle est très claire.

    Existe t il de bonnes raisons de ne pas l'utiliser?

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Arnaoud Voir le message
    Existe t il de bonnes raisons de ne pas l'utiliser?
    Je n'en vois pas, sauf peut-être l'envie de se faire braire avec des if

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Je n'en vois pas, sauf peut-être l'envie de se faire braire avec des if
    Vin de dious ! J'me s'rais attendu à lire des "les breaks et continue faut pas utiliser, c'est un résidu de goto beurk beurk" !

    J'utilise de temps en temps, par pure flemme de réfléchir à l'instruction while ou dowhile qui irait bien pour sortir de la boucle sans utiliser break.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par natha Voir le message
    Vin de dious ! J'me s'rais attendu à lire des "les breaks et continue faut pas utiliser, c'est un résidu de goto beurk beurk" !
    Pourquoi tu dis ça ? J'ai l'air d'un intégriste des langages de programmation ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Par défaut
    les breaks et continue faut pas utiliser, c'est un résidu de goto beurk beurk
    J'avais envie de répondre la même chose que toi. Mais pourquoi ??? Ca parait pratique quand même.

    J'ai imaginé deux raisons:
    - Pb d'optimisations au niveau de la compil
    - Risque d'erreur si l'on rajoute un bloc dans le while, le break sortira du bloc mais pas du while.

    C est assez maigre comme raison, Je ne vois rien de plus concret.

    Merci de vos réponses

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

Discussions similaires

  1. Break et Continue label
    Par Darkaurora dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/02/2014, 18h56
  2. Différence entre break et continue
    Par prugne dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 04/05/2012, 14h41
  3. Probléme avec "break" et "continue"
    Par fredo3il dans le forum Débuter
    Réponses: 8
    Dernier message: 19/11/2007, 10h58
  4. Réponses: 4
    Dernier message: 28/05/2006, 22h11

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