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érateur = ou ==


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Par défaut Opérateur = ou ==
    Bonjour,

    Je souhaiterai savoir comment interprété cette formule qui était dans une bibliothèque Arduino.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      uint8_t direction;
      uint8_t variable1;
      uint8_t i;
     
      if (i < variable1)
      {
          direction = 1;
      }
      else
      {
         direction = i == variable1;  (comment je peux le départager !).
      }
    Merci à vous.
    Bonne année 2019.

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 760
    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 760
    Par défaut
    On peut mettre les parenthèses , mais == est prioritaire sur = (<- Operator Precedence, lien cppreference en anglais)

    Donc tu mets dans la variable direction un booléen "Est-ce que la variable i est égale à la variable variable1" ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Par défaut
    J'ai essayé de faire i == variable1; après direction = i;.

    Mais cela ne marche pas, j'ai essayé aussi de mettre if(i == variable1) { direction = i; }.

    Je pense oui car quand je mets le if ça rentre à l'intérieur.

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 760
    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 760
    Par défaut
    Ah je n'avais pas compris la question tu veux faire un test (i == variable1) et s'il est vrai, mettre la valeur de la variable i dans la variable direction.
    Effectivement, il faut faire un vrai test parce que tu n'as pas de partie else.

    Avec un test ternaire, cela n'est pas adapté : direction = ((i == variable1)? i: direction) ou (si cela compile est fonctionne) ((i == variable1)? direction=i: /*i*/)

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Par défaut
    J'ai trouvé la solution, il fallait juste faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(i == variable1) { direction = 1} else {direction = 0}
    Merci beaucoup pour votre réponse

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 828
    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 828
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par btuning1001 Voir le message
    J'ai trouvé la solution, il fallait juste faire if(i == variable1) { direction = 1} else {direction = 0}
    Ce code met "1" dans direction si i est égal à la variable et "0" sinon (donc y compris si i est plus petit que la variable).
    Or le code initial if (i < variable1) direction = 1 else direction = (i == variable1) qui peut aussi s'écrire if (i <= variable1) direction=1 else direction=0 met "1" dans direction si i est plus petit ou égal à la variable (donc y compris si i est plus petit).
    Les deux codes ne sont donc pas équivalents.

    Accessoirement ce code peut s'écrire plus simplement direction=(i==variable1) ?1 :0.
    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]

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

Discussions similaires

  1. [Binaire] Opérateurs de rotation dee bits ?
    Par Tifauv' dans le forum C
    Réponses: 3
    Dernier message: 09/11/2017, 11h29
  2. Opérateur de statistique
    Par Phil951 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/01/2004, 15h12
  3. Opérateur like
    Par Troopers dans le forum ASP
    Réponses: 3
    Dernier message: 15/09/2003, 19h19
  4. opérateur non applicable à ce type d'opérande
    Par Amon dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 18h07
  5. [imprecis]Réaliser a^n avec seulement l'opérateur d'addition
    Par Amon dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 08/11/2002, 22h22

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