6.2 Flux de contrôle
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- Identifier le flux de contrôle d'un programme.
- Décrire comment le flux de contrôle se déplace entre les instructions et les appels de fonction.
Flux de contrôle et fonctions
Le flux de contrôle (control flow) est la séquence d'exécution d'un programme. Le flux de contrôle d'un programme commence au niveau du programme principal, mais suit rarement un ordre strictement séquentiel. Ex. : le flux de contrôle saute des lignes lorsqu'une instruction conditionnelle n'est pas exécutée.
Lorsque l'exécution atteint un appel de fonction, le flux de contrôle se déplace là où la fonction est définie et exécute les instructions de cette dernière. Ensuite, le flux de contrôle retourne à l'endroit où la fonction a été appelée et poursuit la séquence.
Concepts en pratique
Suivre le flux de contrôle
Fonctions appelant des fonctions
Les fonctions appellent fréquemment d'autres fonctions afin de préserver la modularité, chaque fonction effectuant une tâche unique. Ex. : une fonction qui calcule le total d'une commande peut appeler une fonction qui calcule la taxe sur la vente. Lorsqu'une fonction appelée depuis une autre fonction termine son exécution, le flux de contrôle retourne à la fonction appelante.
Concepts en pratique
Fonctions appelant des fonctions
Considérez l'exemple du club de lecture ci-dessus.
À vous d'essayer
Invite de conditions d'utilisation mise à jour
Écrivez une fonction mise à jour, terms(), qui demande à l'utilisateur d'accepter les conditions générales, lit Y/N et affiche une réponse en appelant accepted() ou rejected(). accepted() affiche "Thank you for accepting the terms." et rejected() affiche "You have rejected the terms. Thank you.".
Avec les entrées 2, "Y" et "N", la sortie est :
Do you accept the terms and conditions?
Y
Thank you for accepting the terms.
Étant donné un appel à la fonction terms() et l'entrée "N", la sortie est :
Do you accept the terms and conditions?
N
You have rejected the terms. Thank you.
À vous d'essayer
Informations sur la laverie
Écrivez un programme qui utilise trois fonctions pour afficher des informations sur une laverie, Liam's Laundry :
laundromat_info(): affiche le nom, Liam's Laundry, et les heures d'ouverture, 7a - 11p, et appellewashers_open()etdryers_open()washers_open(): lit un entier, affecte la valeur àwasher_countet affichewasher_countdryers_open(): lit un entier, affecte la valeur àdryer_countet affichedryer_count
Le programme principal doit simplement appeler laundromat_info().
Avec les entrées 50 et 40, la sortie est :
Liam's Laundry
7a - 11p
Open washers: 50
Open dryers: 40