If…else()
La structure if…else() permet de réaliser plusieurs vérifications. Il s’agit d’une combinaison de deux sentences, de façon que else élargit la construction if afin d’exécuter d’autres actions dans le cas où l’expression if originale soit evalué comme fausse.
Syntaxe
if(Condition){
// Instructions que s’exécuteront si la condition est remplie
}else{
// instructions que s'exécuteront si la condition n'est pas remplie
}
Il existe la posibilité d’inclure encore plus de conditions ou plusieurs sections if…else. La section else du final est optionnelle dans ce cas:
if (condition) {
//Instructions que s'exécuteront si la condition est vraie
} else if (autre_condition) {
//Instructions que s'exécuteront si la condition du if précédant est fausse mais l'actuelle est vraie
} else if (autre_condition) {
//Instructions que s'exécuteront si la condition du “if” précédant est fausse mais l'actuelle est vraie
} else {
//Instructions que s'exécuteront si toutes les conditions précédentes sont fausses
}
Exemple
Nous allons vérifier si le nombre qu’on introduit est égal, inférieur ou supérieur à 23. Le moniteur série nous donnera le résultat:
void setup(){
Serial.begin(9600);
}
void loop(){
if (Serial.available() > 0){
String str = Serial.readStringUntil('\n');
int chiffre = str.toInt();
if (chiffre == 23){
Serial.print("Nombre introduit: ");
Serial.print(chiffre);
Serial.println(" Nombre est égal à 23");
} else if (chiffre < 23) {
Serial.print("Nombre introduit: ");
Serial.print(chiffre);
Serial.println(" Nombre est inférieur à 23");
} else {
Serial.print("Nombre introduit: ");
Serial.print(chiffre);
Serial.println(" Nombre est supérieur à 23");
}
}
}
Dans l’instruction loop() on vérifie, avant tout, si on a des données à lire dans le buffer: if (Serial.available()> 0), c’est la première condition qu’on lui consigne. Pour lire les données du port série on utilise la forme: readStringUntil, lui indiquant que il doit lire jusqu’au saut de ligne: « /n ».
L’étape suivante est de convertir la chaîne de caractères en nombres entiers avec la composition: str.toInt().
Et finalement, on réalise les vérifications avec if…else(): égal à 23 (chiffre==23), inférieur à 23 (chiffre <23) ou supérieur à 23 (chiffre >23).