Un programme permet d’exécuter une liste d’instructions les unes à la suite des autres. Mais on peut aussi "dire" à un programme de n’exécuter des instructions que si une certaine condition est remplie. Cela se fait grâce aux instructions if (si en anglais) et else (qui signifie sinon en anglais).
Les instructions Scratch correspondant aux instructions conditionnelles sont les suivantes :
La fonction suivante permet de déterminer la valeur absolue d’un nombre réel. Taper le code suivant et essayez de comprendre ce qu’est la valeur absolue d’un nombre ainsi que le fonctionnement des instructions if et else en faisant fonctionner ce programme.
def valeurAbsolue(x):
if x>=0:
y = x
else:
y = -x
return y
Il est aussi possible d'inclure des blocs "if ... else ..." dans d'autre blocs "if ... else ..." :
Voici un programme de calcul :
- Choisir un entier ;
- S’il est divisible par 3, le diviser par 3 ;
- si le reste de la division euclidienne de ce nombre par 3 est 1, on ajoute 2 puis on divise le résultat par 3 ;
- si le reste de la division euclidienne de ce nombre par 3 est 2, on ajoute 1 puis on divise le résultat par 3 ;
L’instruction x%3 donne le reste de la division euclidienne de x par 3, donc, si le nombre saisi x est divisible par 3, alors x%3 est égale à 0, si le reste de la division euclidienne par 3 est 1, alors x%3 est égal à 1. De même, si un nombre est pair, alors x%2 est égal à 0.
la fonction suivante effectue ce programme de calcul.
def F(x):
if x%3 == 0 :
rep = x/3
else :
if x%3 == 1 :
rep = (x+2)/3
else :
rep = (x+1)/3
return rep
C’est l’indentation qui permet de savoir ce qui est exécuté lorsque la condition est réalisée.
Cette fonction peut aussi être écrite à l'aide de blocs "if ... elif ... else ... " qui serait traduit par "si ... sinon si ... sinon ..."
Le code suivant reprend ce programme de calcul avec l'instruction "elif"
def F(x):
if x%3 == 0 :
rep = x/3
elif x%3 == 1 :
rep = (x+2)/3
else :
rep = (x+1)/3
return rep
Les opérateurs à utiliser pour les instructions conditionnelles sont les suivants :
- == : égal à
- != : différnet de
- < : Strictement inférieur à
- > : strictement supérieur à
- <= : inférieur ou égal à
- >= : supérieur ou égal à
- and : et
- or : ou
On peut aussi utiliser "et" ou "ou" dans les conditions des instructions conditionnelles comme dans l'exemple suivant
def f(x):
if x%2 == 0 and x>100 :
rep = x/2
else :
rep = x+100
return rep