logo
Для моделирования в Matlab и Scilab

Переключатель

Для осуществления множественного выбора (или ветвления) используется конструкция с переключателем:

Matlab

Scilab

switch switch_Bыражение

case _Bыражение

Список_ инструкций

case { case_Bыражение1, case_Bыражение2,… }

Список_ инструкций

otherwise,

Список_ инструкций

end

select expr0,

case expr1 then instructions1,

case expr2 then instructions2,

...

case exprn then instructionsn,

[else instructions],

end

Выполняется первый оператор case, у которого case_Bыражение соответствует switch_Bыражению. Если ни одно из case_Bыражений не соответствует switch_Bыражению, то выполняется список инструкций после оператора otherwise (если он существует). Выполняется только один case, после чего выполнение продолжается с оператора после end.

Пример Matlab

Пусть существует m-файл-сценарий swit.m:

switch month

case {1,2,3}

disp('Первый квартал')

case {4,5,6} disp('Второй квартал')

case{7,8,9} disp('Третий квартал')

case{10,11,12} disp('Четвертый квартал')

otherwise,

disp('Ошибка в данных')

end

Эта программа в ответ на значения переменной month (номер месяца) определяет номер квартала и выводит сообщение. Как это происходит, видно из следующей программы:

month=3;

swit

Первый квартал

month=10;

swit

Четвертый квартал

month=13;

swit

Ошибка в данных

Пример Scilab

while %t do

n=round(10*rand(1,1))

select n

case 0 then

disp(0)

case 1 then

disp(1)

else

break

end

end

n =

2.