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 :

if(cond) {do this} façon rapide d'écrire ?


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 60
    Points
    60
    Par défaut if(cond) {do this} façon rapide d'écrire ?
    Bonjour

    Je sais qu'il existe une façon rapide d'écrire un IF statement avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (condition) ? faire ceci si la condition est vrai : sinon faire ceci;
    qui remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (condition){
    faire ceci si la condition est vrai;}
    else { faire ceci}
    Or, je ne sais pas si je fais une erreur dans ma façon d'écrire, mais ça ne compile pas.

    De plus, pour être précis, je n'ai pas d'action alternative à faire. Ce que je veux en fait pour être plus précis , ce srait quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (condition){
    faire ceci si la condition est vrai}
    J'ai tenté plusieur forme, mais ça refuse de compiler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (condition) ? faire ceci si la condition est vrai : ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (condition) ? faire ceci si la condition est vrai ;
    De plus comment se nomme cette façon d'écrire un IF statement ? Je n'arrive pas à trouver d'explication concernant mon soucis ?

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Citation Envoyé par hary66 Voir le message
    comment se nomme cette façon d'écrire un IF statement ?
    Une condition ternaire. Par contre, ce n'est pas un if, mais un if / else contenant une expression par branche, ce n'est pas possible de ne rien mettre.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    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 630
    Points : 10 556
    Points
    10 556
    Par défaut
    C'est un opérateur ternaire ((condition)? vrai: faux).

    Effectivement , c'est un test if, mais très spécial :
    • on doit avoir la partie else.
    • ce test est utilisé pour renvoyer une valeur - donc être mis à droite d'une affection ou dans le passage de paramètres


    2 exemples :
    std::string str = ((input.length <= 10)? input: input.substr(0, 10));.
    open_file( ((!(input_name.empty))? input_name: "default.json") );.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Tout le monde gagnerait du temps si tu écrivais au moins 1 fois ce que tu écris qui ne compile pas
    Et le message d'erreur qui va avec.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 60
    Points
    60
    Par défaut
    Merci pour les réponses.
    je fais donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int var_temp = abs(_position[i] - last_position[i]);
        hysteresis = (var_temp > hysteresis) ? var_temp : hysteresis;
    Citation Envoyé par Bousk Voir le message
    Tout le monde gagnerait du temps si tu écrivais au moins 1 fois ce que tu écris qui ne compile pas
    Et le message d'erreur qui va avec.
    Je te l'accorde. Tu à mille fois raison !

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    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 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Ton problème (sur ton code) c'est qu'il faut enchaîner la définition des variables de même type avec la virgule.
    Si tu mets un point virgule, c'est 1 nouvelle définition, et il faut renseigner le type.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int x1, x2, x3,
      x4,
      x5, x6;
    float a; int y1, 
    y2; long b;

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Et quelle est l'erreur ?
    Ces 2 lignes ont l'air correctes.
    Si c'est pour récupérer le max de 2 valeurs, il y a std::max.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. Réponses: 64
    Dernier message: 28/02/2011, 17h42
  2. Façon d'écrire votre code
    Par reptils dans le forum C
    Réponses: 6
    Dernier message: 03/03/2007, 17h20
  3. Comment écrire du texte RAPIDEMENT avec OpenGL
    Par Invité dans le forum OpenGL
    Réponses: 2
    Dernier message: 16/06/2006, 10h01
  4. [VBA-E]Problème sur la façon d'écrire un programme...
    Par olosta dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/04/2006, 22h57
  5. Réponses: 18
    Dernier message: 09/08/2005, 12h57

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