5.1 Branchement et aiguillages

Ces instructions permettent de conditionner l'exécution d'instructions à la valeur d'une condition. La forme la plus simple est la suivante :

 
  if <condition> then <instructions> end

Les instructions contenues dans le bloc <instructions> ne seront exécutées que si l'évaluation de la condition <condition> est T. L'évaluation de la condition <condition> peut-être une matrice de booléens ou une matrice de scalaire, la condition n'est alors vraie que si tous les éléments de la matrice de booléens sont vrais ou tous les éléments de la matrice scalaire sont non nuls.

A=log(rand(3,3)) if imag(A)==0 then disp('A est une matrice réelle'); end

Dans la forme à deux branches,

 
  if <condition> then <instructions> else <instructions> end
la première branche est exécutée quand la valeur de la condition est vraie et la deuxième quand la valeur de la condition est fausse.


\begin{sessioncmd}
\par A =
\par ! - 1.5543587 - 1.1076719 - 0.1628187 !
! - 0.2...
... réélle
-->else
--> disp('A est une matrice complexe');
-->end
\end{sessioncmd}

Enfin on peut utiliser une forme multibranches ou les else succéssifs sont alors introduits par elseif. On peut parfois remplacer des instructions conditionnelles successives par une instruction d'aiguillage (select), par exemple quand on veut exécuter des instructions en fonction de la valeur d'un nombre ou d'une chaîne de caractères. ),

 
  select <expr> , 
    case <expr1> then <instructions> 
    case <expr2> then <instructions> 
    ... 
    else <instructions> 
  end
La valeur de <expr> est successivement comparée à la valeur de chacune des expressions <expr1>, <expr2>, .... Dès qu'il y a égalité le bloc d'instructions suivant le case est exécute. Si aucun cas d'égalité n'est détecté alors c'est le bloc else qui sera (s'il est présent) exécuté.