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 :

Style: while (1) {.... break; ....} ou do .... while ( ) ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de SaintAmand
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 174
    Par défaut Style: while (1) {.... break; ....} ou do .... while ( ) ?
    Bonjour,

    Pour effectuer une saisie, j'ai utilisé une boucle while (1) { .... break; ....}. Ma prof de C trouve la méthode laide et aurait préféré une boucle do....while.
    J'ai vu "l'astuce" a de nombreuses reprises dans des bouquins, j'économise une variable et le bloc while ne faisant que 10 lignes environ, la lisibilité ne s'en ressent pas. Comme ma prof écrit main(), ne nous fait pas activer les warnings de gcc, n'évoque pas les problèmes de sécurité et la désuétude de gets, et j'en passe, j'avoue que je suis assez critique. Aussi, étant débutant, et ne voulant pas prendre de mauvaises habitudes, j'aimerais connaitre l'avis de ceux qui ont un peu de bouteille.
    D'avance merci,

    --
    SaintAmand

  2. #2
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    while (1) { .... break; ....}. Ma prof de C trouve la méthode laide et aurait préféré une boucle do....while.
    Ce n'est pas plus laid, choisir entre les deux est seulement lié à ton algorithme. Si tu dois exécuter au moins une fois ton code, utilise le do while(). Sinon, utilise le while (mais pas de façon infini comme tu l'a fait).

    Pour ce qui est de while(1) ... break; ... , tu comprendras facilement que ceci peut être modifié en while (condition) ... , c'est peut être plus propre en effet.

    ne nous fait pas activer les warnings de gcc
    Oui alors ça c'est une erreur. Un warning deviendra très rapidement un segmentation fault ... . Personnellement je considère un warning comme une erreur (sauf si elle est parfaitement maîtrisée).

    Comme ma prof écrit main()
    Qu'entend tu pas là ? elle écrit totalement le main ?

    n'évoque pas les problèmes de sécurité et la désuétude de gets
    Ca en fait, ça dépend du professeur, des élèves, du niveau général. Si vous débutez, on ne vous dira pas tout d'un seul coup. Il faut expliquer les concepts et ensuite une fois les concepts étudiés, tu peux étudier ce qu'il faut éviter, ce qu'il faut faire ... . Si ça peut t'aider, je me souviens de ma prof de physique qui nous répétait sans cesse : "On ne vous a pas menti, on ne vous a pas tout dit ..."

  3. #3
    Membre confirmé Avatar de Marco85
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 210
    Par défaut
    Citation Envoyé par PRomu@ld
    Comme ma prof écrit main()
    Je pense que sa prof écrit :
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int
    main
    (
        void
    ){
    <...>
    return 0;
    }
    Marco85

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Marco85
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int
    main
    (
        void
    ){
    <...>
    return 0;
    }
    Tu y vas peut être fort dans la 'verticalité', non ?

    Ceci me va très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main (void)
    {
       <...>
       return 0;
    }

  5. #5
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Oui même ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int main (int argc, char ** argv) { ... return EXIT_SUCCESS; }

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par PRomu@ld
    Oui même ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int main (int argc, char ** argv) { ... return EXIT_SUCCESS; }
    Pourquoi tomber dans l'excès ? Qu'est-ce qui ne va pas avec la solution que j'ai proposée ?

  7. #7
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Non rien du tout, je me moque, un petit peu, et je tombe aussi dans l'exces.

    La seule chose qui me chagrinait, c'est le return 0 . Bien que l'on sache exactement ce qui se passe.

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 23/09/2019, 16h45
  2. Réponses: 2
    Dernier message: 21/05/2015, 22h14
  3. [MySQL] Appliquer 2 styles dans une meme boucle while
    Par GarGamel55 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/02/2011, 12h33
  4. Problème boucle while imbriquée dans autre boucle while
    Par nattydreadnatty dans le forum Langage
    Réponses: 3
    Dernier message: 25/08/2010, 14h58
  5. Break avec une boucle while
    Par hallaj dans le forum Langage
    Réponses: 6
    Dernier message: 22/07/2008, 18h36

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