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 :

Opérateurs ternaires


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Par défaut Opérateurs ternaires
    Bonjour à tous,

    débutant en C, j'aurais besoin d'aide pour comprendre le bout de code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ((options.opt_r) ? (my_strcmp(tab[i], tab[j]) > 0) : (my_strcmp(tab[i], tab[j]) < 0))
     {
       function(...);
     }
    si une âme charitable pourrait juste me recoder cette condition avec des if et des else, afin que je comprenne, ce serait très sympa .
    Le function(...); est faux, ne le prenez pas en compte.

    Merci et bonne journée !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    L'opérateur ternaire se décompose ainsi -- (comparaison) ? expression1 : expression2.

    Le principe de l'opérateur ternaire est le suivant : Tu vérifies la comparaison.. Si celle-ci est correct, c'est expression1 qui est utilisé, sinon expression2.

    En suivant ce principe, (options.opt_r) ? (my_strcmp(tab[i], tab[j]) > 0) : (my_strcmp(tab[i], tab[j]) < 0) veut donc dire :
    "Si option.opt_r est vrai, alors on utilisera (my_strcmp(tab[i], tab[j]) > 0). Sinon, on utilisera (my_strcmp(tab[i], tab[j]) < 0).

    A partir de ça, je pense que tu deviendras ta propre âme charitable ! ;-)

    Sinon, plus d'information ici et encore .

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Par défaut
    Merci, mais ce que je ne comprend pas, c'est le >0 dans la condition initiale. C'est un peu comme un if implémenté dans l'autre, non ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    On peut prendre ça ainsi..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(comparaison){
        if(expression1)
            ....
    } else {
        if(expression2)
            ...
    }
    MAIS c'est uniquement car l'opérateur ternaire est utilisé dans la déclaration du if.

  5. #5
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if (options.opt_r)
    {
       if (my_strcmp(tab[i], tab[j]) > 0) 
       {
         function(...);
       }
    }
    else 
      {
         if (my_strcmp(tab[i], tab[j]) < 0)
         {
           function(...);
         } 
      }

  6. #6
    Membre confirmé
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Par défaut
    J'utilise pas tant que ça le ternaire, mais si ça peut t'aider regarde ça :
    URL : http://msdn.microsoft.com/fr-fr/libr...vs.100%29.aspx

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/04/2006, 11h41
  2. opérateur ternaire
    Par the big ben 5 dans le forum Langage
    Réponses: 7
    Dernier message: 23/02/2006, 18h06
  3. Equivalant opérateur ternaire C++
    Par Pero dans le forum Langage
    Réponses: 5
    Dernier message: 07/10/2005, 09h44
  4. [java] pb Opérateur ternaire
    Par phileme dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/07/2004, 13h10
  5. Opérateur ternaire
    Par MASSAKA dans le forum Langage
    Réponses: 14
    Dernier message: 13/05/2004, 15h50

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