Reference Language (étendue) | Librairies? | Comparaison?

if (condition) et ==, !=, <, > (opérateurs logiques de comparaison)

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 
}

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); }   // toutes ces formes sont correctes

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 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)

Attention :

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.


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum.

Le texte de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 License. Les exemples de code dans la référence sont dans le domaine public.

Traduction française et commentaires par X. HINAULT. Janvier - Février 2010

Share