Выполните одну из нескольких групп операторов
switchswitch_expressioncasecase_expressionstatementscasecase_expressionstatements... otherwisestatementsend
switch вычисляет выражение и выбирает выполнение одной из нескольких групп операторов. Каждый выбор - это случай. switch_expression,
case case_expression, end
The switch блокируйте проверку каждого случая до тех пор, пока одно из выражений случая не будет true. Случай верен, когда:
Для чисел, .case_expression == switch_expression
Для векторов символов, strcmp .(case_expression, switch_expression) == 1
Для объектов, которые поддерживают eq функция, . Выход перегруженного case_expression == switch_expressioneq функция должна быть либо логическим значением, либо преобразовываться в логическое значение.
Для массива ячеек case_expression, по меньшей мере, один из элементов массива ячеек совпадает switch_expression, как определено выше для чисел, векторов символов и объектов.
Когда выражение случая true, MATLAB® выполняет соответствующие операторы и выходит из switch блок.
Оцененное switch_expression должен быть скаляр или вектор символов. Оцененное case_expression должен быть скаляром, вектором символов или массивом ячеек из скаляров или векторов символов.
The otherwise блок опциональен. MATLAB выполняет операторы только тогда, когда ни один случай не равен true.
A case_expression не может включать реляционные операторы, такие как < или > для сравнения с switch_expression. Чтобы проверить на неравенство, используйте if, elseif, else операторы.
Система MATLAB switch оператор не проходит, как язык C switch оператор. Если первый case оператор trueMATLAB не выполняет другое 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
MATLAB break оператор заканчивает выполнение for или while цикл, но не прекращает выполнение switch оператор. Это поведение отличается от поведения break и switch в С.