case
, of
, otherwise
, end_case
, _case
Оператор switch
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
Для случая переключателя в MATLAB® смотрите switch
.
case x
of match1 do
statements1
of match2 do
statements2
...
otherwise
otherstatements
end_case
case x
of match1 do
statements1
of match2 do
statements2
...
end_case
_case(x
, match1
, statements1
, match2
, statements2
, , …
, <otherstatements
>)
case-end_case
оператор позволяет переключаться между различными ветвями в программу.
case
оператор является управляющей структурой, которая расширяет функциональность if
оператор. В case
оператор, объект по сравнению со многими данными значениями, и выполняются одна или несколько последовательностей оператора.
Если значение x
равняется одному из значений match1
, match2
и т.д., первая ветвь соответствия и весь после ветвей (включая otherwise
) выполняются, пока выполнение не отключено break
или return
оператор или end_case
.
Если значение x
не равняется ни одному из значений match1, match2, ...
, только otherwise
ветвь выполняется. Если никакой otherwise
ветвь существует, case
оператор отключает и возвращает пустой объект типа DOM_NULL
.
Ключевое слово end_case
может быть заменен ключевым словом end
.
Все операторы после первого соответствия выполняются:
x := 2: case x of 1 do print(1) of 2 do print(4) of 3 do print(9) otherwise print("otherwise") end_case:
break
может использоваться, чтобы гарантировать, что только одна соответствующая ветвь выполняется:
case x of 1 do print(1); 1; break of 2 do print(4); 4; break of 3 do print(9); 9; break otherwise print("otherwise") end_case:
delete x:
Функциональность case
оператор позволяет совместно использовать код, который должен использоваться в нескольких ветвях. Следующая функция использует оператор print(x, "is a real number")
для трех ветвей, которые соответствуют действительным числам MuPAD®:
isReal := proc(x) begin case domtype(x) of DOM_INT do of DOM_RAT do of DOM_FLOAT do print(x, "is a real number"); break of DOM_COMPLEX do print(x, "is not a real number"); break otherwise print(x, "cannot decide"); end_case end_proc: isReal(3), isReal(3/7), isReal(1.23), isReal(3 + I), isReal(z)
delete isReal:
Соответствие между функциональным и обязательной формой case
оператор продемонстрирован:
hold(_case(x, match1, (1; break), match2, (4; break), print("otherwise")))
case x of match1 do 1; break of match2 do 4; break otherwise print("otherwise") end_case
hold(_case(x, match1, (1; break), match2, (4; break)))
case x of match1 do 1; break of match2 do 4; break end_case
|
Произвольные объекты MuPAD |
|
Произвольные последовательности операторов |
Результат последней команды выполняется в case
оператор. Пустой объект типа DOM_NULL
возвращен, если никакая ветвь соответствия не была найдена и никакой otherwise
ветвь существует. NIL
возвращен, если с соответствующей ветвью столкнулись, но никакая команда не выполнялась в этой ветви.
Функциональность case
оператор соответствует switch
оператор языка программирования C.