Comment fonctionne if/else ? Comment les utiliser dans votre programme ?

La fonction if permet d’exécuter du code si la condition est vrai. Le else va vous permettre d’exécuter du code si la condition n’est pas vérifié. Enfin le else if permet de proposer une deuxième condition à vérifier si jamais celle du premier if n’était pas vrai. On va voir tout ceci petit à petit.

Condition if

La conditon if va permettre de tester une partie de votre programme sous une condition : si celle-ci est vrai , le code s’exécute, sinon le programme passe à la suite.

if (condition) {
  //Votre code
}

On voit que la fonction if prends en paramètre une condition qui est booléene : soit faux ou vrai.

On va voir un exemple de condition vrai :

if (7>5) {
   Serial.println("votre code");//Votre code
}

En mettant que 7 est supérieur 5, la condition est vrai donc les lignes de codes à l’intérieur des crochets vont s’exécuter. En retournant la condition, c’est à dire 7<5, la condition devient fausse et donc ce qui entre les crochets ne sera pas exécutés.

Comment écrire la condition ?

La condition pour le if peut-être dur à écrire, surtout avec tout les opérateurs qui existe. On vous conseille notre cours sur les fonctions mathématiques pour avoir un tableau complet de tout les opérateurs utilisables sur arduino !

Condition else

Le else est utilisé quand la conditon du if est fausse. C’est une alternative au if, si celui-ci n’est pas exécuté alors le else le sera.

Voici un exemple pour le else :

if (condition) {
  // Si la conditon est vrai
}

else {
  // Si la conditon n'est pas respectée
}

Voici un exemple ou la condition du if est fausse pour que le programme dans le else soit exécuté : 

if (7<5) { 
    Serial.println("if");// code non exécuté car la conditon est fausse
}

else {
  Serial.println("else"); // Code exécuté
}

Comme vous l’avez vu, le else n’a pas de condition, il sera donc toujours exécuter si le if est faux. Il se peut que vous vouliez faire un autre if pour tester une deuxième conditon. Pour ça il y a le “else if”.

Condition else if

Le “else if” permet de tester une deuxième condition après le premier if. Le “else if” comme le simple if sera exécuté que si la condition est vrai. Vous pouvez mettre autant de “else if” que vous souhaitez :

if (condition1) {
  // Le code du if
}
else if (condition2) {
  // Le code du premier else if
}
else if (condition3) {
  // Le code du deuxième else if
}
else {
  // Code exécuté que si le if et les elif ont une conditon fausse
}

Voici un exemple avec de vrai condition afin de mieux comprendre en détails :

if (4==3) { // condition fausse
  Serial.println("if");// Le code du if ne s'executera pas 
}
else if (4<2) { // condition fausse
  Serial.println("premier elif ");// Le code du premier else if ne s'exécutera pas
}
else if (4>2) { // conditon vrai
  Serial.println("deuxième elif ");// Le code du deuxième else if va s'exécuter
}
else {
 Serial.println("else"); // Le code ne sera pas exécute
}

Ici comme on peut voir, c’est le second “else if” qui va s’exécuter car les conditions avant elle sont fausses.

Néanmoins, si vous avez beaucoup de “else if” à mettre, une alternative est le switch case.

Bonus : condition switch case

Le switch case permet de tester plusieurs conditions, en faisant un code plus propre qu’avec plusieurs if ou else if. Le switch case ne remplace pas dans tous les cas le if et else if, c’est au cas par cas.

On utilise une variable qui contient un nombre entier, une chaîne de caractère ou un booléen. Le mot case, qui veut dire cas en français, permet de différencier ce que le programme doit faire  si la variable est égale à la conditon 1, ou 2.  Si la variable ne corresponds à aucun cas, alors c’est le code dans default qui sera exécuté.

Voici un exemple  :

switch (var) {
  case votre_condition1:
   // code de la conditon 1
    break;
  case votre_condition2:
    // code de la condition 2
    break;
  default:
   // Code qui s'exécute si le programme n'est pas rentré dans un case
    break;
}

Voici un exemple pour mieux comprendre le switch case :

int var=1;
switch (var) {
  case 1:
    Serial.println("conditon 1"); // Code qui être exécuté
    break;
  case 2:
    Serial.println("condition 2");
    break;
  default:
   Serial.println("defaut"); // Code qui s'exécute si le programme n'est pas rentré dans un case
    break;
}

Ici la variable var va être comparée à chaque case afin de savoir quel code executer. Ici la variable var vaut 1 donc le code executé sera case 1.