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