exponenta event banner

if, elseif, else

Выполнять операторы, если условие истинно

Синтаксис

if expression
    statements
elseif expression
    statements
else
    statements
end

Описание

пример

if expression, statements, end вычисляет выражение и выполняет группу операторов, если выражение имеет значение true. Выражение имеет значение true, если его результат не является пустым и содержит только ненулевые элементы (логические или вещественные числовые). В противном случае выражение имеет значение false.

elseif и else блоки являются необязательными. Операторы выполняются, только если предыдущие выражения в if...end блоки имеют значение false. Один if блок может включать несколько elseif блоки.

Примеры

свернуть все

Создайте матрицу из 1.

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

Выполните цикл через матрицу и присвойте каждому элементу новое значение. Назначить 2 на главной диагонали, -1 на смежных диагоналях, и 0 везде.

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

Выражения, включающие реляционные операторы в массивах, такие как A > 0, являются истинными, только если каждый элемент в результате не равен нулю.

Проверьте, верны ли какие-либо результаты, используя 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.

Сравнение массивов с помощью isequal вместо == оператор для проверки на равенство, потому что == приводит к ошибке, когда массивы имеют разные размеры.

Создайте два массива.

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

Если size(A) и size(B) являются одинаковыми, объединяют массивы; в противном случае выведите предупреждение и верните пустой массив.

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.

Использовать strcmp для сравнения векторов символов. Используя == проверка на равенство приводит к ошибке, когда векторы символов имеют разные размеры.

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

Определите, является ли значение ненулевым. Используйте ~= оператор для проверки на неравенство.

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

Определите, попадает ли значение в указанный диапазон.

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.

Подробнее

свернуть все

Выражение

Выражение может включать реляционные операторы (например, < или ==) и логические операторы (например, &&, ||, или ~). Использовать логические операторы and и or для создания составных выражений. MATLAB ® вычисляет составные выражения слева направо, придерживаясь правил приоритета оператора.

В пределах условного выражения if...end блок, логические операторы & и | вести себя как операторы короткого замыкания. Это поведение аналогично && и ||соответственно. С тех пор && и || последовательно короткое замыкание в условных выражениях и высказываниях, рекомендуется использовать && и || вместо & и | внутри выражения. Например,

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

Первая часть выражения имеет значение false. Поэтому MATLAB не нужно вычислять вторую часть выражения, что приведет к неопределенной ошибке функции.

Совет

  • Можно вложить любое количество if заявления. Каждый if оператор требует end ключевое слово.

  • Избегайте добавления пробела после else в пределах elseif ключевое слово (else if). Помещение создает вложенное if оператор, который требует своего end ключевое слово.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен до R2006a