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 :

Condition encapsulé ou EXIT_FAILURE


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Juin 2014
    Messages : 63
    Par défaut Condition encapsulé ou EXIT_FAILURE
    Bonjour,

    Lorsqu'on test des conditions (par exemple si un fichier existe bien ou si l'utilisateur a rentré les bon arguments) qui pénalise la suite du programme si elles sont fauses, est-ce qu'il faut mieux avoir un modele comme ça :
    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
     
    if(condition1)
    {
        /* Code */
        if(confition2)
       {
            /* Code */
            if(condition3)
                /* Code */
            else
                printf("Error\n");
        }
        else
            printf("Error\n");
    else
        printf("Error\n");
    ou alors comme ca :
    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
     
    if(!condition1)
    {
        printf("Error\n");
        exit(EXIT_FAILURE);
    }
    /* Code */
    if(!condition2)
    {
        printf("Error\n");
        exit(EXIT_FAILURE);
    }
    /* Code */
    if(!condition3)
    {
        printf("Error\n");
        exit(EXIT_FAILURE);
    }
    /* Code */
    Je sais que vous allez me dire que sa revient au même, mais je voulais savoir avec qu'elle solution vous coder. Je trouve que la solution 1 n'est pas très adapté à ceux qui indente de 4 à chaque nouvelle condition (comme moi), ce qui fait qu'à la fin on se retrouve avec de gros blanc en début. Mais la deuxième solution, on quite le programme avec un EXIT_FAILURE. En gros, on stop nette le programme sans le faire arriver à la fin. Donc quel est la meilleur, ou la mieux adapté à un code clair et lisible.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    Ce sont deux choses différentes, dans le premiers cas chaque condition est fonction de la condition précédente (ou en tous cas c'est la logique d'un tel code)...
    tandis que ton second morceau de code pour moi ce serait plutot des conditions indépendantes sans rapports les unes avec les autres.


    Ce serait plus simple de t'aider si tu donnais le code qui te gêne

  3. #3
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 771
    Par défaut
    Réponse de Sve@r et après

    Édit: @Sve@r cela t'évite de réécrire ce que tu as dit plusieurs fois

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par AchilleFraisse Voir le message
    ...Mais la deuxième solution, on quite le programme avec un EXIT_FAILURE. En gros, on stop nette le programme sans le faire arriver à la fin. Donc quel est la meilleur, ou la mieux adapté à un code clair et lisible.
    Bonjour

    Quoi qu'il arrive, on ne stoppe jamais le programme autrement que par le main(). Imagine si le programmeur de fopen() avait fait un exit() quand le fichier ne s'ouvre pas !!!!! Donc si ta fonction n'arrive pas à travailler, elle s'arrête et remonte l'info à son appelant (return) qui poura agir en conséquence.

    Sinon pour l'histoire des blancs en début de ligne c'est effectivement ce que je dis dans le topic cité par foetus (merci à toi foetus )
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 31
    Dernier message: 30/03/2006, 16h57
  2. Condition et contenu TImage
    Par Detlev_linux dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2003, 01h00
  3. Encapsulation graphique d'un outil en ligne de commande
    Par Leishmaniose dans le forum Composants VCL
    Réponses: 3
    Dernier message: 12/11/2003, 11h59
  4. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48
  5. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58

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