Sommaire
Structures conditionnelles
Afin de rendre certaines parties du code exécutable sous certaines conditions, il est possible d’ajouter des conditions logiques.
Il en existe de 3 sortes.
Structure SI / SINON
La première permet d’exécuter un bloc d’instructions si une condition logique est vraie, ou d’exécuter un autre bloc d’instructions si cette dernière est fausse. Cette deuxième partie est facultative.
La syntaxe est la suivante :
if( condition logique ){
bloc d'instructions à exécuter lorsque la condition est vraie
}
else{
bloc d'instructions à exécuter lorsque la condition est fausse
}
Exemple
Si l’on souhaite incrémenter une variable nommée compteur si la variable nommée k est inférieure à 10 et décrémenter compteur sinon, on écrira :
if( k < 10 ){
compteur++;
}
else{
compteur--;
}
A chaque fois que le programme passera par cette structure, il vérifiera la valeur de la variable k, et agira en conséquence.
Multiples conditions
Il est possible de mettre plusieurs conditions logiques dans le test. Il faut alors les séparer par des opérateurs logiques ET / OU par exemple.
Si l’on souhaite que la variable compteur soit incrémentée lorsque la variable k est inférieure à 10 ET que la variable z soit supérieure ou égale à 5, on écrira :
if( (k < 10) && (z >= 5) ){
compteur++;
}
Si l’on souhaite que la variable compteur soit décrémentée lorsque la variable k est supérieure ou égale à 10 OU que la variable z soit inférieure à 5, on écrira :
if( (k >= 10) || (z < 5) ){
compteur--;
}
Remarque : les deux conditions citées ci-dessus sont complémentaires…
Fermer
Structure TANT QUE
On peut vouloir également exécuter un bloc d’instructions tant qu’une variable (ou une broche d’entrée) n’a pas atteint une certaine valeur.
La structure à utiliser est la suivante :
while( condition logique ){
bloc d'instructions à exécuter
mise à jour des variables incluses dans la condition logique
}
Le test de la condition logique est réalisé avant l’exécution du bloc d’instruction. Si la condition logique est vraie, le bloc est exécuté. Sinon, il ne l’est pas.
Il faut faire attention, dans cette structure conditionnelle, que les variables incluses dans la condition logique testée soit bien mise à jour au cours de l’exécution du bloc d’instructions, sinon le programme ne sortira pas de cette boucle.
Exemple
On souhaite incrémenter une variable nommée compteur tant qu’une entrée est à une valeur haute (équivalente à ‘1’) (voir tutoriel Entrées / Sorties Numériques).
a = DigitalRead(12);
while(a == 1){
compteur++;
a = DigitalRead(12);
}
Fermer
Structure POUR i ALLANT DE min A max
On peut également vouloir exécuter un bloc d’instructions un nombre de fois donné.
Pour cela, on utilisera la structure suivante :
for( indice = valeur de départ ; condition logique ; incrémentation de l'indice ){
bloc d'instructions à réaliser un certain nombre de fois
}
Exemple
On souhaite lire l’entrée analogique A0 (voir tutoriel Entrées Analogiques) 10 fois et stocker le résultat dans un tableau :
int resultats[10];
int i;
for( i = 0 ; i < 10 ; i++ ){
resultats[i] = analogRead(A0);
}