le C++ a une grammaire qu'il faut respecter
un if s'écrit comme ceci
if (condition) statement_si_vrai
ou
1 2
| if (condition) statement_si_vrai
else statement_si_faux |
un statement c'est une seule "instruction".
1 2 3
|
if (x == 3) Serial.println("X vaut 3");
else Serial.println("X ne vaut pas 3"); |
si vous voulez plusieurs instructions alors il faut créer ce que l'on appelle un compound statement avec des accolades
1 2 3 4 5 6 7 8
|
if (x == 3) {
Serial.println("X vaut 3");
Serial.println("et je fais autre chose dans la cas où c'est 3);
} else {
Serial.println("X ne vaut pas 3");
Serial.println("et je fais autre chose dans la cas où ce n'est pas 3);
} |
Dans votre code si vous n'avez pas d'accolades et vous écrivez
1 2 3 4 5 6 7 8 9 10
|
// code faux
if (x == 3)
Serial.println("X vaut 3");
Serial.println("et je fais autre chose dans la cas où c'est 3);
else {
Serial.println("X ne vaut pas 3");
Serial.println("et je fais autre chose dans la cas où ce n'est pas 3);
} |
le compilateur comprend cela comme cela
1 2 3 4 5 6 7 8 9 10 11 12
|
// code faux
if (x == 3) Serial.println("X vaut 3"); // seul ce println est dans le if
// ceci sera toujours exécuté
Serial.println("et je fais autre chose dans la cas où c'est 3);
// et ce else n'est pas rattaché au if et donc ça bug
else {
Serial.println("X ne vaut pas 3");
Serial.println("et je fais autre chose dans la cas où ce n'est pas 3);
} |
ça vous aide ?
Partager