Questions : instructions conditionnelles
Question 1
Question
Après exécution du programme suivant, quelle serait la valeur affichée ?
nb = 15
if nb % 2 == 0 :
    nb = nb * 5
else:
    nb = nb * 2
print(nb)
- 15
- 30
- 75
- 150
- 15
- 30
- 75
- 150
L'expression de la clause if, nb % 2 == 0, a pour valeur False quand nb vaut 15.
L'instruction exécutée est donc nb = nb * 2, ce qui affecte à nb la valeur 30.  
Question 2
Question
Après exécution du programme suivant, quelle serait la valeur affichée ?
nb = 15
if nb % 2 == 0 :
    nb = nb * 5
elif nb % 5 == 0:
    nb = nb * 2
else:
    nb = nb * 3
print(nb)
- 30
- 45
- 75
- 150
- 30
- 45
- 75
- 150
L'expression de la clause if, nb % 2 == 0, a pour valeur False quand nb vaut 15.
L'expression de la clause elif, nb % 5 == 0, a pour valeur True quand nb vaut 15. L'instruction exécutée est donc nb = nb * 2, ce qui affecte à nb la valeur 30.  
Question 3
Question
Après exécution du programme suivant, quelle serait la valeur affichée ?
nb = 12
if nb % 2 == 0 :
    nb = nb * 5
if nb % 5 == 0:
    nb = nb * 2
else:
    nb = nb * 3
print(nb)
- 24
- 36
- 60
- 120
- 24
- 36
- 60
- 120
L'expression de la clause du premier if, nb % 2 == 0, a pour valeur True quand nb vaut 12. L'instruction nb = nb * 5 est donc exécutée, ce qui affecte à nb la valeur 60.
L'expression de la clause du second if, nb % 5 == 0, a pour valeur True quand nb vaut 60. L'instruction nb = nb * 2, est donc aussi exécutée, ce qui affecte à nb la valeur 120.  
Cet exemple montre qu'il faut attentivement distinguer les instructions if … elif des instructions if successives.