Le plus souvent, il est nécessaire de choisir les opérations à effectuer en fonction de certaines conditions. Par exemple, pour calculer les solutions d'une équation du second degré, on va tenir compte du fait que le déterminant est positif, négatif ou nul. Les énoncés conditionnels des langages de programmation permettent de faire cela.
A RETENIR
Un énoncé conditionnel permet d'exécuter un bloc d'instructions
quand une condition est vérifiée.
En Python, c'est l'indentation qui détermine les blocs d'instructions.
Un bloc d'instructions commence après une ligne d'entête terminée par le
caractère :. Les instructions d'un même bloc ont toutes la même
indentation (i.e. elles sont précédées du même nombre de tabulations). Le bloc
se termine quand la tabulation redevient la tabulation de la ligne
d'entête. Par exemple, le code ci-dessous contient un bloc d'instructions
qui contient les instructions instruction_1 à instruction_n
ligne_d'entête :
instruction_1
instruction_2
...
instruction_n
suite_des_instructions_pas_dans_le_bloc
Notez qu'en Java ou en C les blocs sont délimités par les
caractètes { (début du bloc) et } (fin du bloc).
Une condition a une valeur booléenne c'est à dire
qu'elle peut être vraie ou fausse. C'est le type bool en Python
(valeurs possibles True et False). Les conditions
peuvent être combinées gràce aux opérateurs booléens and,
or et not.
Attention : les opérateurs and, or et not
s'appliquent à des expressions de type booléens.
La condition "mois==1 or 2 or 3" n'a pas de sens (ou plutôt n'a pas le sens
attendu) puisque 1, 2 et 3 sont des entiers et pas des booléens. Il faut écrire
"mois==1 or mois==2 or mois==3" si l'on veut savoir si mois vaut 1 ou 2 ou 3.
Les énoncés conditionnels peuvent être composés (on dit aussi imbriqués)
pour combiner plusieurs conditions. Par exemple, dans le code ci-dessous,
quand cond1 et cond2 sont vraies, on exécute successivement
bloc1,bloc2,bloc3,bloc_final, et quand cond1 est vraie et cond2 est fausse
on exécute bloc1, bloc3, bloc_final :
if cond1 :
bloc1
if cond2 :
bloc2
bloc3
bloc_final
Les fonctions de conversion (cast en anglais) permettent
de changer le type d'une expression. Bien sûr, quand on convertit une
expression, on peut perdre de la précision, c'est le cas si l'on passe
d'un flottant à un entier (essayer par exemple int(5.6784)).
On peut aussi générer une erreur, quand la conversion est impossible,
comme par exemple : int("BII")).