# Structures logiques conditionnelles (if/else/elif)

## Définition

Une structure conditionnelle ou décisionnelle est la comparaison d’un, deux ou plusieurs éléments. Cette structure implique l’utilisation des opérateurs logiques. On cherche à connaitre l’état (vrai ou faux) de l’expression de comparaison.

Il existe trois types de structure décisionnelle :&#x20;

### Structure décisionnelle simple

Cette structure permet l’exécution d’une tâche (une ou plusieurs instructions) selon l’état de la condition.

#### &#x20;Syntaxe Python :&#x20;

```python
if condition:
    instructions
```

La structure se lit : si *`condition`* est vraie alors exécuter les *`instructions`*.

*`condition`* étant une variable contenant une valeur booléenne ou une expression de comparaison ayant comme résultat vrai ou faux (True ou False en Python).

*`instrucitons`* étant un ensemble d’instructions qui vont s’exécuter si la condition est True.

{% hint style="danger" %}
Les indentations sont importantes en langage Python. C’est ce qui donne sa structure au code Python et qui lui permet de s’exécuter correctement.
{% endhint %}

#### &#x20;Exemple :&#x20;

<figure><img src="https://700524925-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn5YnWU89G98lz0ROIcGu%2Fuploads%2FWnLgCOHWK5MoepJIujJY%2Fifsimple.png?alt=media&#x26;token=2c53e700-1e8d-462e-92de-55d7e3e37a61" alt=""><figcaption></figcaption></figure>

```python
age = input("Veuillez entrer l'age de la personne:")
if age > 18:
    print("Adulte")
```

### Structure décisionnelle double

Si la condition est vraie, une suite séquentielle d’instructions sera exécutée. Dans le cas où la condition est fausse, c’est une autre suite séquentielle d’instructions (différente de la précédente) qui sera exécutée.&#x20;

#### &#x20;Syntaxe Python :&#x20;

```python
if condition:
    instructions1
else:
    instructions2
```

La structure se lit : si *`condition`* est vraie alors exécuter les `instructions 1` sinon exécuter les `instructions 1`*.*

*`condition`* étant une variable contenant une valeur booléenne ou une expression de comparaison ayant comme résultat vrai ou faux (True ou False en Python).

*`instructions1`* étant un ensemble d’instructions qui vont s’exécuter si la condition est True.

*`instructions2`* étant un ensemble d’instructions qui vont s’exécuter si la condition est False.

#### &#x20;Exemple : organigramme et code source en Python

<figure><img src="https://700524925-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fn5YnWU89G98lz0ROIcGu%2Fuploads%2FRVyWO9TRZPhjeLd5aGNt%2Fifelse.png?alt=media&#x26;token=fec11623-6696-4008-877a-7cd5c5460548" alt=""><figcaption></figcaption></figure>

```python
if age > 18:
    print("Adulte")
else:
    print("Enfant ou adolescent")
```

### Structure décisionnelle multiple

Si la condition est vraie, une suite séquentielle d’instructions sera exécutée. Dans le cas où la condition est fausse, c’est une autre condition qui sera évaluée, et si elle est vraie, une autre suite séquentielle d’instructions, ainsi de suite. Si aucune des conditions n’est satisfaite, c’est une autre suite séquentielle d’instructions qui sera exécutée (complètement différente des précédentes).

#### &#x20;[Syntaxe Python ](https://docs.python.org/3/tutorial/controlflow.html#if-statements)

```python
if condition1:
    instructions1
elif condition2:
    instructions2
elif condition3:
    instructions3
...
else:
    instructionsn
```

La structure se lit : si *`condition1`* est vraie, alors exécuter les `instructions`` `*`1`,* sinon si `condition2` est vraie, alors exécuter les `instructions`` `*`2`*, sinon si `condition3` alors exécuter les `instructions`` `*`3`* … sinon exécuter les `instructions`` `*`n`.*

*`condition1`, `condition2`, … étant des* variables contenant des valeurs booléennes ou des expressions de comparaison ayant comme résultat vrai ou faux (True ou False en Python).

*`instructions1`, `instructions2`, …* étant des ensembles d’instructions qui vont s’exécuter si les conditions (resp.) *`condition1`*, *`condition2`*, … sont vraies (True).

*`instructionsn`* étant un ensemble d’instructions qui vont s’exécuter si aucune condition précédente n’est vraie (True).

#### Exemple : avec chaînes de caractères

```python
fruit = input("Saisissez un fruit : ")

if fruit == "Banane" or fruit == "Ananas":
    print(f"Le fruit {fruit} est jaune")
elif fruit == "Orange" or fruit == "Abricot":
    print(f"Le fruit {fruit} est orange")
elif fruit == "Pitaya":
    print(f"Le fruit {fruit} est rose")
else:
    print(f"Désolé, ce fruit {fruit} n'existe pas dans ma base de connaissances.")

```
