Pas de condition

Bonjour

Je suis tombé sur se site pour des recherches :

Je me suis arrêter au :

 if(!etat_BP)

"si l’état du bouton poussoir est différent de" ....

la variable est comparé a quoi ?

Merci

Bonjour,

! c'est l'opérateur not (logique).
Donc si etat_BP est vrai, !etat_BP est faux.

La variable etat_BP est convertie implicitement en booleen.
Le C/C++ est assez tolérant sur le type des variables. Une variable peut être convertie implicitement en booleen si elle est nulle ce sera false, sinon true

Bonjour

Je sais que le ! est un opérateur NOT

mais

if (etat_BP !=ancien_etat_BP)  // si l’état du BP est différent de l'ancien état enregistré , exécuté -> ça je comprend
   {
     if(!etat_BP)     // que je mette le bouton en état haut 5V ou bas sur le GND  le résultat est le même.
        {
          //action
        }

{

J'ai essayer le sketch ... mais je ne comprend pas comment le " if(!etat_BP) " fonctionne ...
Ça doit être simple a comprendre pourtant mais quelque chose m’échappe...

@+

l'expression à l'intérieur des parenthèses du if est un booléen (pas forcément une comparaison) la variable etat_BP est implicitement convertie en booleen comme expliqué dans mon post précédent.

Il n’est pas obligatoire de faire de comparaison dans un if(), par exemple un if(1) fonctionnera et sera toujours vrai.

Ici la variable etat_BP est modifiée avant le test if(). etat_BP vaut donc soit un etat haut, soit un etat bas.
Le test if(!etat_BP) fonctionnera quand le BP sera à LOW, ou 0, ou FALSE.

Tu peux le traduire par Si etat_BP n’est pas vrai alors

Merci à vous deux j'ai pigé :slight_smile: