Выполните одну из нескольких групп операторов
switchswitch_expression
casecase_expression
statements
casecase_expression
statements
... otherwisestatements
end
switch
выполняет выражение и принимает решение выполнить одну из нескольких групп операторов. Каждым выбором является случай. switch_expression
,
case case_expression
, end
switch
стендовые испытания двигателя каждый случай до одного из case-выражений верны. Случай верен когда:
Для чисел,
.case_expression
== switch_expression
Для векторов символов, strcmp (
.case_expression
, switch_expression
) == 1
Для объектов, которые поддерживают eq
функция,
. Выход перегруженного case_expression
== switch_expression
eq
функция должна быть или логическим значением или конвертируемый к логическому значению.
Для массива ячеек case_expression
, по крайней мере один из элементов массива ячеек совпадает с switch_expression
, как задано выше для чисел, векторов символов и объектов.
Когда case-выражение верно, MATLAB® выполняет соответствующие операторы и выходит из switch
блок.
Оцененный switch_expression
должен быть скаляр или вектор символов. Оцененный case_expression
должен быть скаляр, вектор символов или массив ячеек скаляров или векторов символов.
otherwise
блок является дополнительным. MATLAB выполняет операторы только, когда никакой случай не верен.
case_expression
не может включать операторы отношения, такие как <
или >
для сравнения с switch_expression
. Чтобы протестировать на неравенство, используйте if, elseif, else
операторы.
switch
MATLAB оператор не проваливается как язык C
switch
оператор. Если первый case
оператором является true
, MATLAB не выполняет другой case
операторы. Например:
result = 52; switch(result) case 52 disp('result is 52') case {52, 78} disp('result is 52 or 78') end
result is 52
Задайте все переменные, необходимые для кода в конкретной ситуации в том случае. Поскольку MATLAB выполняет только один случай любого switch
оператор, переменные, заданные в одном случае, не доступен для других случаев. Например, если ваша текущая рабочая область не содержит переменную x
, только случаи, которые задают x
может использовать его:
switch choice case 1 x = -pi:0.01:pi; case 2 % does not know anything about x end
break
MATLAB оператор заканчивает выполнение
for
или while
цикл, но не заканчивает выполнение switch
оператор. Это поведение отличается, чем поведение break
и switch
в C.