Contenuto principale

if, elseif, else

Eseguire le dichiarazioni se la condizione è vera

Sintassi

if expression
    statements
elseif expression
    statements
else
    statements
end

Descrizione

if expression, statements, end valuta un’espressione ed esegue un gruppo di dichiarazioni quando l’espressione è vera. Un'espressione è vera quando il relativo risultato non è vuoto e contiene solo elementi diversi da zero (logici o numeri reali). Diversamente, l'espressione è falsa.

I blocchi elseif e else sono opzionali. Le dichiarazioni vengono eseguite solo se le espressioni precedenti nel blocco if...end sono false. Un blocco if può includere più blocchi elseif.

esempio

Esempi

comprimi tutto

Creare una matrice di 1s.

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

Eseguire un loop nella matrice e attribuire un nuovo valore a ciascun elemento. Attribuire 2 sulla diagonale principale, -1 sulle diagonali adiacenti e 0 in qualsiasi altro punto.

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

Le espressioni che includono operatori relazionali sugli array, come A > 0, sono vere solo quando ogni elemento del risultato è diverso da zero.

Verificare se un qualsiasi risultato è vero utilizzando la funzione 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.

Per verificare l’uguaglianza, confrontare gli array utilizzando l’operatore isequal piuttosto che ==, poiché == produce un errore quando gli array hanno dimensioni diverse.

Creare due array.

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

Se size(A) e size(B) sono uguali, concatenare gli array; diversamente, visualizzare un avviso re restituire un array vuoto.

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.

Utilizzare strcmp per confrontare vettori di caratteri. L’utilizzo di == per verificare l’uguaglianza produce un errore quando i vettori di caratteri hanno dimensioni diverse.

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

Determinare se un valore è diverso da zero. Utilizzate l'operatore ~= per verificare la disuguaglianza.

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

Determinare se un valore rientra in un intervallo specificato.

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.

Ulteriori informazioni

comprimi tutto

Suggerimenti

  • È possibile annidare un numero qualsiasi di dichiarazioni if. Ciascuna dichiarazione if richiede una parola chiave end.

  • Evitare di aggiungere uno spazio dopo else all’interno della parola chiave elseif (else if). Lo spazio crea una dichiarazione if annidata che richiede la propria parola chiave end.

Funzionalità estese

espandi tutto

Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.

Cronologia versioni

Introduzione prima di R2006a