Выполните одну из нескольких групп операторов
switchswitch_expressioncasecase_expressionstatementscasecase_expressionstatements... otherwisestatementsend
switch выполняет выражение и принимает решение выполнить одну из нескольких групп операторов. Каждым выбором является случай. switch_expression,
case case_expression, end
switch стендовые испытания двигателя каждый случай до одного из case-выражений верны. Случай верен когда:
Для чисел, .case_expression == switch_expression
Для векторов символов, strcmp (.case_expression, switch_expression) == 1
Для объектов, которые поддерживают eq функция, . Выход перегруженного case_expression == switch_expressioneq функция должна быть логическим значением.
Для массива ячеек 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.