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

C Discussion :

L'instruction continue ?


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Points : 78
    Points
    78
    Par défaut [Résolu] L'instruction continue ?
    A quoi sert cette instruction car d'après ma doc:

    continue

    Catégorie
    Instructions

    Syntaxe
    continue;

    Description
    L'instruction continue dans des boucles permet de transmettre le contrôle à la fin de l'accolade fermante la plus interne appartenant à une construction en boucle telle que for ou while ; à ce point la condition de continuation de la boucle est réévaluée.
    Mais j'ai du mal à comprendre, pourriez vous me donner un exemple et / ou une explication ?
    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    C'est ds une boucle par exmple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(i=0 ; i<10 ; i++) {
    if(i==3) {
    continue ; } // on ignore
    printf("%d\n",i) ;
    }
    Cet exemple va afficher
    0
    1
    2
    4
    5
    6
    7
    8
    9

    Le 3 non car si i==3 alors on revient au début et on repart de 3 ...

    Nas'

  3. #3
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    L'instruction continue permet tout simplement de passer a l'iteration suivante de la boucle sans effectuer les traitements restants pour cette iteration.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Points : 78
    Points
    78
    Par défaut
    J'ai compris, merci beaucoup pour les explications et l'exemple.

  5. #5
    Membre averti

    Inscrit en
    Juin 2002
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 97
    Points : 307
    Points
    307
    Par défaut
    Encore d'une autre façon:
    "continue" équivaut à un "goto" devant l'accolade fermante de la boucle dans laquelle il est.
    Ce qui signifie que la partie 'incrémentation' d'une boucle for est éxécutée.

    "break" quitte la boucle ou le bloc switch.
    "J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone."-Bjarne Stroustrup
    www.stroustrup.com

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Points : 78
    Points
    78
    Par défaut
    Merci pour les précisions.

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 47
    Points : 24
    Points
    24
    Par défaut
    J'ai souvent entendu dire qu'il fallait éviter l'instruction goto, pour cause de code spaghetti.
    Est-ce qu'il faut en placer le moins possible ?

  8. #8
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Goto est déconseillé car les débranchements qu'elle fait complique le programme, assez souvent. Seulement, faut pas non plus la bannir. Parfois ca peut etre une solution ... mais faut pas en abuser ...

    Nas'

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 40
    Points
    40
    Par défaut
    J'ai souvent entendu que dans bcp de DUT informatique le goto etait banni et je suis d'accord avec cette regle 1 ou 2 goto dans du code ca passe si on trouve vraiment pas d'autre solution mais au bout de plusieur goto on s'en sort plus et je suis sur que pour tous goto y'a moyen de trouver mieux un petit test des fois c'est toujours mieux surtout qu'au niveau de la compilateur une fois en ASM le programme ne perd pas bcp en vitesse d'execution si les tests sont bien fais et optimisé !

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 18
    Points : 18
    Points
    18
    Par défaut
    Le "goto" est un vestige de la programmation d'antan. S'il est encore présent dans quelques langages, ce doit être par nostalgie.
    Je pense qu'un code qui fait appel à des "goto" doit être réecrit car c'est la preuve d'un programme mal structuré ou au moins mal pensé.
    Ceci dit, l'instruction continue du C peut rendre de fiers services ! ;-)
    A utiliser donc, à dose homéopathique ...

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 47
    Points : 24
    Points
    24
    Par défaut
    A utiliser donc, à dose homéopathique ...

  12. #12
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par lsdInside
    Le "goto" est un vestige de la programmation d'antan. S'il est encore présent dans quelques langages, ce doit être par nostalgie.
    Je pense qu'un code qui fait appel à des "goto" doit être réecrit car c'est la preuve d'un programme mal structuré ou au moins mal pensé.
    Ceci dit, l'instruction continue du C peut rendre de fiers services ! ;-)
    A utiliser donc, à dose homéopathique ...
    Je ne suis pas d'accord, meme si il est toujours possible de trouver d'autres solutions, parfois un goto n'est pas si inelegant que ca. Par exemple pour sortir d'un ensemble de boucles imbriquees c'est, me semble-t-il, une bonne solution.
    De plus l'utilisation de continue ou de break revient au meme qu'un goto si ce n'est qu'il n'est pas necessaire de mettre les labels (et donc pas de risques de les mettre au mauvais endroit), si tu tiens vraiment a proscrire les gotos (par souci de lisibilite) il faudrait aussi proscrire les continue et les break.

    Par contre je suis tout a fait d'accord avec le fait qu'il faut les utiliser avec parcimonie.

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

Discussions similaires

  1. [Toutes versions] Boucle For Equivalent de l instruction continue
    Par torquemada dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/11/2014, 09h19
  2. [XL-2007] procédure qui continue malgré instruction contraire
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/04/2010, 16h50
  3. instruction continue et boucle
    Par racoboss dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2007, 11h02
  4. Équivalent de l'instruction "Continue"
    Par Lung dans le forum SQL
    Réponses: 17
    Dernier message: 31/08/2007, 10h02
  5. [Tableaux] boucle for et instruction continue
    Par reg11 dans le forum Langage
    Réponses: 4
    Dernier message: 16/12/2005, 18h00

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