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 :

Bonne pratique: deux façons de mettre une condition


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 2
    Par défaut Bonne pratique: deux façons de mettre une condition
    Bonjours,

    On m'a récemment posé une colle: Certaines personnes posent leurs conditions de la façon suivante:

    if (condition == true)

    et d'autres :

    if (true == condition)

    J'aimerai connaitre les avantages de la deuxième méthode.
    C'est peut être une question bateau mais je me permet de la poser quand même.

    Merci d'avance

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    L'intérêt de la seconde méthode est de poser une erreur de compilation si on oublie un =.

    Cependant, il est encore plus simple d'écrire if (condition), et il ne peut pas y avoir d'erreur.
    Et si ce n'est pas lisible, c'est probablement parce que la variable est mal nommée.

    Par exemple, tester si une chaine de caractère (bidule) est vide se dirait en anglais "if bidule is empty, then say sorry"

    En code, on a trois choix:
    • if (bidule.empty() == true) say("sorry");, "if the fact that bidule is empty is true, (then) say sorry", ou en français "si le fait que bidule est vide est vrai, dire désolé"
    • if (true== bidule.empty()) say("sorry"); "if true is the fact that bidule is empty, (then) say sorry", ou en français "si vrai est le fait que bidule est vide, dire désolé"
    • if (bidule.empty()) say("sorry"); "if bidule is empty, (then) sey sorry", ou en français "si bidule est vide, dire désolé"


    Autant dire que la troisième solution est plus claire. Au passage, empty() est régulière critiquée, car elle aurait pû ou dû s'appeler is_empty().

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Aujourd'hui, ton compilateur t'avertira toujours s'il voit: if ( a = true ). La véritable bonne pratique c'est de toujours lire les avertissements du compilateur et de mettre le niveau d'avertissement le plus élevé.

    C'est une bonne pratique d'un autre temps de mettre if (true == a) à mon avis. C'est bien de la connaître pour lire le code des autres, mais if (a == true) est quand même plus naturel et plus agréable à lire.

    Pour le cas particulier où on teste si un bool renvoie vrai, supprimer true est une bonne idée. Pour le bool dont on veut savoir s'il est false, il y a: if (!empty), pourquoi pas. Mais la pratique est valable pour toute constante:
    if (2 == nb_joueurs).

    En revanche si on compare deux variables non constantes : if (nb_max ==current) elle ne permet pas de détecter l'erreur if (nb_max = current). Donc la seule sauvegarde vraiment générale ce sont les avertissements du compilateur.

Discussions similaires

  1. [C# 2.0]Mettre une condition dans un repeater
    Par giloutho dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/11/2006, 19h13
  2. Réponses: 1
    Dernier message: 08/09/2006, 10h31
  3. mettre une condition dans l'ajout de données
    Par ash_rmy dans le forum Access
    Réponses: 2
    Dernier message: 27/07/2006, 13h29
  4. Mettre une condition if dans une requete sql
    Par Sardonnen dans le forum Oracle
    Réponses: 4
    Dernier message: 24/03/2006, 11h25
  5. mettre une condition au sein d'un echo
    Par mussara dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2006, 14h12

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