Aller au contenu

Exécuter selon des conditions

Permet d'exécuter des instructions si une condition parmi plusieurs est vraie.

Dans l'exemple ci-dessous, nous allons modifier l'état d'une LED RGB,

  • En vert si le bouton A seul est appuyé.
  • En orange si le bouton B seul est appuyé.
  • En rouge si les boutons A et B sont tous les deux appuyés.
  • Éteinte si aucun des boutons est appuyé.

Bloc Si/Sinon

Info

Le bloc if Bloc if peut être trouvé dans la catégorie de blocs Contrôle. Notez qu'une condition issue de la catégorie de bloc Opérateurs doit être fournie pour que ce bloc soit fonctionnel.

# On boucle indéfiniment
while True:
     # si le bouton A seul est appuyé
     if button_a.is_pressed() and not button_b.is_pressed():
     # on allume la led de couleur verte
        led.set_colors(0, 255, 0)
     # si le bouton B seul est appuyé
     elif not button_a.is_pressed() and button_b.is_pressed():
     # on allume la led de couleur orange
        led.set_colors(255, 140, 0)
     # si le bouton A et le bouton B sont appuyés
     elif button_a.is_pressed() and button_b.is_pressed():
     # on allume la led de couleur rouge
        led.set_colors(255, 0, 0)
     else:
     # on garde chaque canaux de la led à zero (intensité nulle)
        led.set_colors(0, 0, 0) 

Si la partie entre if et les : est évaluée comme vrai alors les instructions indentées qui suivent les : seront exécutées. Sinon ce sont les instructions situées après le else: qui le seront.

Aller plus loin

On a souvent l'habitude de représenter le cours du programme avec un organigramme de programmation :

graph LR
  A[Début de la boucle infinie] --> B{A est appuyé et B pas appuyé};
  B -->|Vrai| C[Allumer la LED en vert];
  B -->|Faux| D{A pas appuyé et B appuyé};
  D -->|Vrai| E[Allumer la LED en orange];
  D -->|Faux| F{A et B appuyés};
  F -->|Vrai| G[Allumer la LED en vert];
  F -->|Faux| H[LED éteinte];

Si vous voulez en savoir plus sur les organigrammes, voici une chouette page Wikipédia. Dans l'exemple ci-dessus, nous utilisons les fonctions du langage MicroPython if et else. Pour en savoir plus, nous vous invitons à lire la documentation MicroPython.