### 8.4.17 L’instruction conditionnelle : `if then else end, si alors sinon fsi`

`if` est suivi d’un booléen entre des parenthèses.
`if` permet de faire, ou de ne pas faire, un bloc d’instructions, selon la valeur de ce booléen.
`if` utilisé avec `else` permet de choisir de faire, soit un bloc d’instructions, soit un autre bloc d’instructions , selon la valeur du booléen.
`fi` est suivi d’un booléen et de `then`.
Selon la valeur de ce booléen `if` permet de faire, ou de ne pas faire, les instructions situées entre `else` et `end`.
Selon la valeur de ce booléen `if` utilisé avec `else` permet de choisir de faire, soit les instructions situées entre `then` et `else`, soit les instructions situées entre `else` et `end`.
`si` est suivi d’un booléen et de `alors`.
Selon la valeur de ce booléen `si` permet de faire, ou de ne pas faire, les instructions situées entre `alors` et `fsi`.
Selon la valeur de ce booléen `si` utilisé avec `sinon` permet de choisir de faire, soit les instructions situées entre `alors` et `sinon`, soit les instructions situées entre `sinon` et `fsi`.
On tape :

`a:=3;b:=2;`

puis :

`if (a>b) {a:=a+5;b:=a-b;}`

On obtient :

`6`

On tape :

`a:=3;b:=2;`

puis :

`if a>b then a:=a+5;b:=a-b;end`

On obtient :

`6`

On tape :

`a:=3;b:=2;`

puis :

`si a>b alors a:=a+5;b:=a-b;fsi`

On obtient :

`6`

On tape :

`maxi(a,b):={if (a>b) {return a;} else {return b;}}`

puis :

`maxi(2,3)`

On obtient :

`3`

On tape :

`maxi(a,b):={if a>b then return a; else return b;end}`

puis :

`maxi(2,3)`

On obtient :

`3`

On tape :

`maxi(a,b):={si a>b alors retourne a; sinon retourne b;fsi}`

puis :

`maxi(2,3)`

On obtient :

`3`