### 8.4.18 L’instruction conditionnelle : `if then elif else end`

Lorsqu’il y a plusieurs `if...else if...` à la suite on peut aussi utiliser un `elif` qui est une écriture condensée de `else if`. L’instruction `elif` permet une écriture plus lisible car un seul `end` suffit pour clore le `if`. Le dernier `elif` peut comporter ou ne pas comporter un `else`. Voici la syntaxe :

`if (``condition1``) then
` `action1``;
elif (``condition2``) then
` `action2``;
elif (``condition3``) then
` `action3``;
end`
ou bien `if (``condition1``) then
` `action1``;
elif (``condition2``) then
` `action2``;
elif (``condition3``) then
` `action3``;
else` `action4``;
end`
On tape par exemple pour définir la fonction `f` définit par :

- f(x)=8 si x>8
- f(x)=4 si 4<x≥ 8
- f(x)=2 si 2<x≥ 4
- f(x)=1 si 0<x≥ 2
- f(x)=0 si x≤ 0

    f(a):= {
      if a>8 then
        return 8;
      elif a>4 then
        return 4;
      elif a>2 then
        return 2;
      elif a>0 then
        return 1;
      elif a<=0 then
        return 0;
      end;
    }:;

ou plutôt en utilisant un `else` à la place du dernier `elif`, on tape:

    f(a):= {
      if a>8 then
        return 8;
      elif a>4 then
        return 4;
      elif a>2 then
        return 2;
      elif a>0 then
        return 1;
      else
        return 0;
      end;
    }:;