if (condition)

Description

L'instruction if ("si" en français), utilisée avec un opérateur logique de comparaison, permet de tester si une condition est vraie, par exemple si la mesure d'une entrée analogique est bien supérieure à une certaine valeur.

Syntaxe

Le format d'un test if est le suivant :

if (uneVariable > 50) { // faire quelque chose }

※ Remarque:

Dans cet exemple, le programme va tester si la variable uneVariable est supérieure à 50. Si c'est le cas, le programme va réaliser une action particulière. Autrement dit, si l'état du test entre les parenthèses est vrai, les instructions comprises entre les accolades sont exécutées. Sinon, le programme se poursuit sans exécuter ces instructions.

Les accolades peuvent être omises après une instruction if. Dans ce cas, la suite de la ligne (qui se termine par un point-virgule) devient la seule instruction de la condition. Tous les exemples suivants sont corrects :

if (x > 120) digitalWrite(LEDpin, HIGH); if (x > 120) digitalWrite(LEDpin, HIGH); if (x > 120) {digitalWrite(LEDpin, HIGH);} if (x > 120) { digitalWrite(LEDpin1, HIGH); digitalWrite(LEDpin2, HIGH); } // toutes ces formes sont correctes

Exemple

The below code will print the even numbers only

int i = 0; void setup() { Serial.begin(9600); } void loop() { if ((i % 2) == 0) { Serial.print("Inside the IF statement, even number: i = "); Serial.println(i); } i++; // increase i by 1 delay(500); }

The result on Serial Monitor:

COM6
Send
Inside the IF statement, even number: i = 0 Inside the IF statement, even number: i = 2 Inside the IF statement, even number: i = 4 Inside the IF statement, even number: i = 6 Inside the IF statement, even number: i = 8 Inside the IF statement, even number: i = 10
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Remarque:

La condition évaluée à l'intérieur des parenthèses nécessite l'utilisation d'une ou plusieurs de ces opérateurs logiques de comparaison :

Opérateurs logiques de comparaison:

x == y (x is equal to y) x == y (x est égal à y) x != y (x est différent de y) x < y (x est inférieur à y) x > y (x est supérieur à y) x <= y (x est inférieur ou égal à y) x >= y (x est supérieur ou égal à y)

Prenez garde à ne pas utiliser accidentellement le signe = unique (par exemple if (x=10) ). Le signe égal unique est l'opérateur d'attribution d'une valeur, et fixe la valeur de x à 10 (autrement dit met la valeur 10 dans la variable x). Utilisez bien au lieu de cela le signe double égal == (c'est à dire if (x==10), le == étant l'opérateur logique de comparaison, et qui test si x est bien égal à 10 ou non. Cette dernière condition (x==10) est vraie uniquement si x est égal à 10, alors que la première condition (x=10) sera toujours vraie.

C'est la raison pour laquelle le langage C (sur lequel est basé Arduino) évalue la condition (x=10) de la façon suivante : la valeur 10 est assignée à la variable 10 (se souvenir que l'opérateur = est l'opérateur d'attribution de valeur ), et donc la variable x contient 10. Dès lors, l'instruction conditionnelle "if" teste la valeur 10, laquelle est toujours évaluée VRAIE. C'est pourquoi, l'instruction if (x=10) sera toujours considérée VRAIE, ce qui n 'est pas le résultat voulu lorsque l'on utilise une instruction if. De plus, la variable x est mise à la valeur 10, ce qui n'est pas non plus l'action désirée.

if peut bien sûr être une partie d'une structure de contrôle de type branchement en utilisant l'instruction if...else.

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Disclosure: Some links in this section are Amazon affiliate links. If you make a purchase through these links, we may earn a commission at no extra cost to you.
Additionally, some links direct to products from our own brand, DIYables.

※ OUR MESSAGES