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> endla 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.
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> endLa 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é.