Main Content

if, elseif, else

Exécuter les instructions si la condition est vraie

Syntaxe

if expression
    statements
elseif expression
    statements
else
    statements
end

Description

exemple

if expression, statements, end évalue une expression et exécute un groupe d’instructions lorsque l’expression est vraie. Une expression est vraie lorsque son résultat est non vide et ne contient que des éléments non nuls (logiques ou numériques réels). À défaut, l’expression est fausse.

Les blocs elseif et else sont facultatifs. Les instructions s’exécutent uniquement si les expressions précédentes du bloc if...end sont fausses. Un bloc if peut inclure plusieurs blocs elseif.

Exemples

réduire tout

Créez une matrice de 1.

nrows = 4;
ncols = 6;
A = ones(nrows,ncols);

Réaliser une boucle sur la matrice et attribuez une nouvelle valeur à chaque élément. Attribuez 2 à la diagonale principale, -1 aux diagonales adjacentes et 0 partout ailleurs.

for c = 1:ncols
    for r = 1:nrows
        
        if r == c
            A(r,c) = 2;
        elseif abs(r-c) == 1
            A(r,c) = -1;
        else
            A(r,c) = 0;
        end
        
    end
end
A
A = 4×6

     2    -1     0     0     0     0
    -1     2    -1     0     0     0
     0    -1     2    -1     0     0
     0     0    -1     2    -1     0

Les expressions qui incluent des opérateurs relationnels sur des tableaux, telles que A > 0, ne sont vraies que si chaque élément du résultat est non nul.

Testez si un résultat est vrai à l’aide de la fonction any.

limit = 0.75;
A = rand(10,1)
A = 10×1

    0.8147
    0.9058
    0.1270
    0.9134
    0.6324
    0.0975
    0.2785
    0.5469
    0.9575
    0.9649

if any(A > limit)
    disp('There is at least one value above the limit.')
else
    disp('All values are below the limit.')
end
There is at least one value above the limit.

Comparez les tableaux en utilisant isequal plutôt que l’opérateur == pour tester l’égalité, car == entraîne une erreur lorsque les tableaux sont de tailles différentes.

Créez deux tableaux.

A = ones(2,3);
B = rand(3,4,5);

Si size(A) et size(B) sont identiques, concaténez les tableaux. À défaut, un avertissement s’affiche et renvoie un tableau vide.

if isequal(size(A),size(B))
   C = [A; B];
else
   disp('A and B are not the same size.')
   C = [];
end
A and B are not the same size.

Utilisez strcmp pour comparer des vecteurs de caractères. L’utilisation de == pour tester l’égalité entraîne une erreur lorsque les vecteurs de caractères sont de tailles différentes.

reply = input('Would you like to see an echo? (y/n): ','s');
if strcmp(reply,'y')
  disp(reply)
end

Déterminez si une valeur est non nulle. Utilisez l’opérateur ~= pour tester l’inégalité.

x = 10;
if x ~= 0
    disp('Nonzero value')
end
Nonzero value

Déterminez si une valeur se situe dans une fourchette spécifiée.

x = 10;
minVal = 2;
maxVal = 6;

if (x >= minVal) && (x <= maxVal)
    disp('Value within specified range.')
elseif (x > maxVal)
    disp('Value exceeds maximum value.')
else
    disp('Value is below minimum value.')
end
Value exceeds maximum value.

En savoir plus

réduire tout

Expression

Une expression peut inclure des opérateurs relationnels (tels que < ou ==) et des opérateurs logiques (tels que &&, || ou ~). Utilisez les opérateurs logiques and et or pour créer des expressions composées. MATLAB® évalue les expressions composées de gauche à droite, en respectant les règles de priorité d’usage des opérateurs.

Dans l’expression conditionnelle d’un bloc if...end, les opérateurs logiques & et | doivent se comporter comme des opérateurs court-circuit. Ce comportement est possible avec les opérateurs && et ||, respectivement. Étant donné que && et || sont systématiquement court-circuités dans les expressions et déclarations conditionnelles, nous vous recommandons d’utiliser && et || plutôt que & et | au sein de l’expression. Par exemple,

x = 42;
if exist('myfunction.m','file') && (myfunction(x) >= pi)
    disp('Expressions are true')
end

La première partie de l’expression est évaluée à « false ». Par conséquent, MATLAB n’a pas besoin d’évaluer la deuxième partie de l’expression, ce qui entraînerait une erreur de fonction non définie.

Conseils

  • Vous pouvez imbriquer autant d’instructions if que vous le souhaitez. Chaque instruction if requiert un mot clé end.

  • Évitez d’ajouter un espace après else à l’intérieur du mot clé elseif (else if). L’espace crée une déclaration if imbriquée qui nécessite son propre mot clé end.

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit avant R2006a