Otherwise
End
S0
Else
S1
If A
Команда if и пустые массивы
End
Else
End
Операторы
End
Операторы
If X
End
End
Операторы
Команды if, else, and elseif
Команда ifоценивает логическое выражение и обрабатывает группу операторов, основыва-ясь на значении указанного выражения. В свое простейшей форме синтаксис команды имеет вид
if(логическое выражение)logical_expression
Если логическое выражение истинно, то есть равно 1, MATLAB выполняет все операторы между строками, содержащими команды ifиend . После этого он продолжает выполнять ко-манды. находящиеся за строкой с end. Если логическое выражение ложно, то есть дает логи-ческий 0, MATLAB перескакивает через все выражения между строками с ifиend , и про-должает свою работу со строки, следующей за командой end. Например,
if rem (a,2) == 0
disp('a is even')
b = a/2;
Данный блок проверяет, является ли входной аргумент четным числом и, если да, то выводит в комндную строку соответствующее сообщение и делить число апополам. В противном случае, данный блок не выполняется. Между строками с ifиendвы можете включить произ-вольное число операторов, содержащих, в свою очередь, любые команды и циклы. Если ло-гическое выражение приводит к нескалярной величине, то для выполнения блока все элемен-ты аргумента должны буть ненулевыми. Например, допустим X является матрицей. Тогда выражение
эквивалентно следующему
if all(X(:))
При использовании с if , команды elseиelseifдают следующие дополнительные возможно-сти создания программ:
• Команда elseне имеет логического условия. Операторы, связанные с данной командой вы-
полняются, если предшествующее условие команды if (и, возможно, elseif) является лож-
ным.
•Командаelseif имеет логическое условие, которое оценивается, если предшествующее ус-
ловие команды if (и, возможно, elseif), является ложным. Если логическое условие данной
команды elseifявляется истинным, то выполняются соответствующие операторы, следую-
щие за данной командой. Вы можете иметь произвольное число команд elseifв пределах
одного блока с if.
if n < 0 %Если nотрицательно, дать сообщение об ошибке
disp('Input must be positive');
elseif rem (n, 2) == 0 %Еслиnположительно и четно, разделить на 2.
A = n/2;
A = (n+1) /2; %Если nположительнои нечетно, прибавить 1 и
% разделить на два.
Если логическое условие, связанное с if, приводит к нулевому массиву, то оно оценивается как ложное. Например, если Аявляется пустым массивом, то следующий блок
выполняет оператор S0.
Команда switch
Команда switch осуществляет обработку определенных операторов, исходя из значения пере-менной или выражения. Ее базовая форма имеет вид
switchвыражение (скаляр или строка символов)
caseзначение 1
операторы % Выполняются есливыражение == значение 1
caseзначение 2
операторы % Выполняются есливыражение == значение 2
.
.
.
операторы % Выполняются есливыражение не соответствует не одному
% значению, связанному с командамиcase