Site icon AranaCorp

Petit tour sur l’instruction if en C

L’instruction if est la structure conditionnelle de base et se retrouve dans tous les langages de programmation. Elle permet d’exécuter des blocs de code différents en fonction d’une condition. Elle est la base de nombreux algorithmes et permet à un ordinateur de faire un choix en fonction des données qu’on lui envoie.

Syntaxe de l’instruction if

L’instruction if prend, en entrée, une condition sous forme d’une variable booléenne et exécute un bloc d’instructions si elle est vraie (on dit dans ce cas que la condition est réalisée) et un autre si elle est fausse.

  if(condition){
    <liste d'instructions si condition=true>;
  }else{
    <liste d'instructions si condition=false>;
  }

Exemple de code déterminant le signe d’une variable avec l’instruction if:

int val=-10;

void setup() {
  Serial.begin(9600);
}

void loop() {
  if(val>=0){
    Serial.println(F("Value is positive"));
  }else{
    Serial.println(F("Value is negative"));
  }
  val=val+2; //increment val
  if(val>10) val=-10; // set val to initial value
  delay(500); //delay for monitor display
}

Un booléen est un type de variable égale à true( 1-vrai) ou false(0-faux). Dans le langage C(Arduino), les variables booléennes sont initialisées à l’aide du mot clé bool ou boolean. Un booléen peut être obtenu de différentes manières

 condition = variable == 10;    // variable égale à 10? 
 condition = temperature>30;   // temperature est supérieure à 30 
 condition = vitesse <= 100    // vitesse inférieure ou égale à 100 
 condition = !true // condition égale  non vraie (faux) 
   
bool test(int val){
  //retourne vraie si la valeur est supérieur à 200
  return val>200;
}
condition=(temperature>30) && (vitesse<20);

Autres syntaxes

L’instruction if peut avoir plusieurs syntaxes selon les cas.

Il est possible d’oublier les accolades lorsque l’instruction qui suit se trouve sur une seule ligne

  if(condition) <instructions>;

Exemple:

if(condtion) Serial.println("Conditon est réalisée");

Si il n’y a pas d’instruction à exécuter lorsque la condition n’est pas réalisée, il est possible d’oublier le bloc else{}

  if(condition){
    <liste d'instructions>;
  }

Si plusieurs conditions sont évaluées en même temps

  if(condition){
   // <liste d'instructions si condition==true>;
  }else if(condition2){
    //<liste d'instructions si condition==false && condition2==true>;
  }else if(condition3){
    //<liste d'instructions si condition==false && condition2==false && condition3==true>;
  }else{
    //<liste d'instructions si aucune condition réalisée>;
  }

Ce qu’il faut retenir

Bonus

Dans des cas simples, il est possible d’utiliser l’instruction « ? » dont la syntaxe est la suivante

resultat = (condition) ? <instruction si vraie> : <instruction si faux>

Exemple, ligne de code qui retourne le signe d’une variable:

 
  int signe= (variable>=0) ? 1:-1; // retourne 1 si la valeur est positive et - 1 si elle est négative

Assurez-vous de bien comprendre les booléens et les opérateurs logique pour bien utiliser l’instruction if. Une fois cette instruction maitrisée, vos algorithmes pourront prendre de bonnes décisions.

Sources

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Quitter la version mobile