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 :

Réglages sur conditionnelle il.. else if .. else


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2010
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2010
    Messages : 113
    Par défaut Réglages sur conditionnelle il.. else if .. else
    Salut à tous,

    Dans le code ci-après, en ligne 15, il m'a semblé que 'else' serait plus approprié à 'else if' car dans ce test d'apprentissage il ne peut y avoir d'autre condition que les 3 examinées et >0 est la dernière.
    Contre toute attente l'emploi de 'else' en ligne 15 provoque une erreur.
    Si quelqu'un a une idée... Merci d'avance

    L.P. (premiers pas en C++)
    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
     
    #include <iostream>
    using namespace std;
    int main()
    {
    int nb(0);
        if (nb < 0)
    {
            cout << "Inferieur a zero" << endl;
    }
        else if (nb == 0)
    {
            cout << "Egal a zero" << endl;
    }
        else if (nb > 0)
    {
            cout << "Plus grand que zero" << endl;
    }
                cout << "Fin " << endl;
    return 0;
    }

  2. #2
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2010
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2010
    Messages : 113
    Par défaut
    Inattention,
    j'ai trouvé l'erreur (de débutant).
    Il n'y a pas de condition avec 'else'...

    L.P.

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,

    Effectivement, lorsque tu as plusieurs tests à effectuer sur une même donnée et que tu ne peux pas envisager d'utiliser switch ... case, comme c'est le cas ici, le dernier cas peut être traduit par un simple "else", car le code que tu présente signifie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    si nb est plus petit que 0 : on fait quelque chose
    sinon, si nb est égal à 0 : on fait autre chose
    sinon si nb est plus grand que 0 : on fait encore autre chose
    Or, comme tu l'as si bien déduit par toi même : si nb n'est pas plus petit que 0 et que nb n'est pas égal à 0, il n'y a plus qu'une seule solution : c'est que nb est forcément plus grand que 0, et le fait de préciser que nb doit être plus grand que 0 devient redondant par rapport à la seule solution qui reste

    Mais ce n'est pas forcément toujours le cas, en fonction des valeurs que tu voudras tester, et de l'ordre dans lequel tu envisage de tester ces valeurs. Ou, plutôt, il se peut que tu n'ai pas une succession de else if, mais bien un test (if... else) "imbriqué" dans un autre if (ou dans un else) dans certaines circonstances. Et il se peut même que tu n'aie que la partie "if" du test en question.

    Par exemple, réfléchis aux différentes possibilités qui te sont donnée pour avoir une logique qui
    1. fait quelque chose si nb est plus petit que -15
    2. fait autre chose si nb est plus grand que 10
    3. fait une troisième chose si nb est plus grand que -15 mais plus petit qu 10
    4. fait une quatrième chose si nb vaut -15
    5. fait une cinquième chose si nb vaut 10

    Il y a énormément de solutions à ce genre de problème, certaines utilisant if ... else; d'autre utilisant des tests imbriqués, et d'autres utilisant ... les deux possibilités. Mais pourrais tu m'en trouver trois différentes
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. [XL-2010] Problème sur la fonction IF THEN ELSE
    Par ValerieH34 dans le forum Excel
    Réponses: 2
    Dernier message: 18/05/2015, 16h22
  2. [Nagios] Avis sur Cacti, Centreon, Vigilo, what else ?
    Par marveljojo75 dans le forum Réseau
    Réponses: 0
    Dernier message: 09/01/2009, 09h31
  3. Les tests conditionnels - If - Else if - Else
    Par stomerfull dans le forum Langage
    Réponses: 6
    Dernier message: 08/05/2008, 12h12
  4. strucute if(){} else if(){} else
    Par debutantasp dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 13/03/2008, 12h36
  5. refactoring de plusieurs if-else-if-else .
    Par elekis dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2007, 16h56

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