Конструкция переключателя
Для осуществления множественного выбора (или ветвления) используется конструкция с переключателем типа switch:
switch
switch_Выражение
case
case_Выражение
Список_инструкций
case
{case_Выражение
1
, Case_выражение
2
, case_Выражение
3
....}
Список_инструкций
otherwise. Список_инструкций
end
Если выражение после заголовка switch имеет значение одного из выражений case _Выражение…, то выполняется блок операторов case, в противном случае – список инструкций после оператора otherwise. При выполнении блока case исполняются те списки инструкций, для которых case_Выражение совпадает со switch_Выражением. Обратите внимание на то, что case_Выражение может быть числом, константой, переменной, вектором ячеек или даже строчной переменной. В последнем случае оператор case истинен, если функция strcmp (значение, выражение) возвращает логическое значение "истине".
Поясним применение оператора switch на примере m-файла swl.m:
switch
van
case
{
1.2.3
}
disp(
'Первый квартал'
)
case
{
4.5.6
}
disp(
'Второй квартал'
)
case
{
7.8.9
}
d.isp(
'Третий квартал'
)
case
{
10.11.12
}
disp(
'Четвертый квартал'
)
otherwise
disp(
'Ошибка в задании'
)
end
Эта программа в ответ на значения переменной var – номера месяца – вычисляет, к какому кварталу относится заданный месяц, и выводит соответствующее сообщение:
>
>
var
=
2
;
>
>
swl
Первый квартал
>
>
var
=
4
;swl
Второй квартал
>
>
var
=
7
:swl
Третий квартал
>
>
var
=
12
;swl
Четвертый квартал
>
>
var
=
-
1
;swl
Ошибка в задании