4.6 Décisions imbriquées
Objectifs d'apprentissage
À la fin de cette section, vous devriez être capable de :
- Décrire les chemins d'exécution de programmes comportant des instructions
if-elseimbriquées. - Implémenter un programme comportant des instructions
if-elseimbriquées.
Instructions de décision imbriquées
Supposons qu'un programmeur écrive un programme qui lit l'identifiant d'un jeu ainsi que le nombre de joueurs et affiche si l'utilisateur dispose du bon nombre de joueurs pour ce jeu.
Le programmeur peut commencer ainsi :
if game == 1 and players < 2:
print("Not enough players")
if game == 1 and players > 4:
print("Too many players")
if game == 1 and (2 <= players <= 4):
print("Ready to start")
if game == 2 and players < 3:
print("Not enough players")
if game == 2 and players > 6:
print("Too many players")
if game == 2 and (3 <= players <= 6):
print("Ready to start")
Le programmeur se rend compte que le code est redondant. Et s'il pouvait d'abord évaluer l'identifiant du jeu, puis prendre une décision concernant les joueurs ? L'imbrication permet de placer une instruction de décision à l'intérieur d'une autre instruction de décision, ce qui est indiqué par un niveau d'indentation.
Un programme amélioré :
if game == 1:
if players < 2:
print("Not enough players")
elif players > 4:
print("Too many players")
else:
print("Ready to start")
if game == 2:
if players < 3:
print("Not enough players")
elif players > 6:
print("Too many players")
else:
print("Ready to start")
# Test game IDs 3-end
Concepts en pratique
Utilisation d'instructions if-else imbriquées
À vous d'essayer
Commandes de repas
Écrivez un programme qui lit une chaîne de caractères, "lunch" ou "dinner", représentant le choix du menu, et un entier, 1, 2 ou 3, représentant le choix de repas de l'utilisateur. Le programme affiche ensuite le choix de repas de l'utilisateur.
Options de repas pour le déjeuner
- 1 : Salade César
- 2 : Wrap au poulet épicé
- 3 : Soupe de courge butternut
Options de repas pour le dîner
- 1 : Saumon au four
- 2 : Burger de dinde
- 3 : Risotto aux champignons
Ex. : Si l'entrée est :
lunch
3
La sortie est :
Your order: Butternut squash soup