Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
nbCqmVlOPg.doc
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
151.04 Кб
Скачать

2. Управляющие конструкции

Для проектирования сложных интерактивных программ используют управляющие конструкции.

Все управляющие конструкции принято делить на операторы выбора (ветвления), которые позволяют выбрать один из вариантов работы программы, и циклические операторы, повторяющие блок команд некоторое число раз. Также применяются специальные команды для досрочного завершения цикла или всей программы. Рассмотрим их подробнее.

2.1 Условный оператор if

Оператор имеет следующий синтаксис:

if условие 1

блок команд 1

elseif условие 2

блок команд 2

else

блок команд N

end

Работа условного оператора основана на проверке условий на истинность. Как только MATLAB дошёл до первого истинного условия, он выполняет соответствующий блок команд. На этом работа оператора if заканчивается. Если все выражения оказались ложными, выполняются инструкции блока else.

Синтаксис условного оператора разрешает отсутствие блоков elseif и else.

Условные выражения представляют собой неравенства, записанные с помощью логических операторов:

  • больше >,

  • меньше <,

  • равно ==,

  • меньше или равно <=,

  • больше или равно >=,

  • не ~,

  • не равно ~=,

  • и &,

  • или |.

Условие считается истинным только тогда, когда неравенство верно.

Для записи сложных выражений рекомендуется использовать скобки:

>> if (a < b) & (b < c)

end

Рассмотрим пример.

Пусть требуется найти наибольшее из двух чисел.

Создадим функцию MaxNumber:

function MaxNumber(a, b)

if a >= b

disp(a)

else

disp(b)

end

Вызовем её с параметрами 1.6 и 3.14:

>> MaxNumber(1.6, 3.14)

3.1400

2.2 Оператор выбора switch-case

Данный оператор применяется в тех случаях, когда переменная (или результат выражения) может принимать одно из нескольких конкретных значений. Синтаксис оператора имеет вид:

switch переменная или выражение

case {список значений 1}

команды 1

case {список значений 2}

команды 2

otherwise

команды N

end

Работа оператора выбора аналогична работе условного оператора. Результат switch-выражения сравнивается с перечисленными в case-блоках значениями. Как только найдено хотя бы одно совпадение, выполняются соответствующие команды. Команды блока otherwise выполняются, если не нашлось ни одного совпадения. Но использовать его не обязательно.

Эквивалентная запись условного оператора выглядит так:

if (выражение == значения1{1}) | (выражение == значения1{n1})

команды1

elseif (выражение == значения2{1}) | (выражение == значения2{n2})

команды2

else

команды блока otherwise

end

Оператор « | » – логический оператор ИЛИ. Таким образом, условие будет выполнено, если будет найдено хотя бы одно совпадение.

Переменная в блоке switch должна быть скалярного типа или строкой. Если вместо неё используется выражение, оно так же должно возвращать скалярное значение или строку. В случае ошибки MATLAB выведет сообщение об ошибке.

Переменные (или выражения) в списке блока case также должны представлять собой или скалярные переменные, или строки, или массивы таких значений (но не матрицы). В последнем случае MATLAB будет искать совпадения хотя бы с одним из элементов массива. Если список значений содержит единственное значение, использование фигурных скобок необязательно.

Рассмотрим пример использования оператора.

Пусть нам нужно определить, является буква английского алфавита гласной или согласной. Для этого мы в функции IsVowel создадим массив гласных (vowels) и поместим его в блок case:

function IsVowel(letter)

vowels = {'A', 'a';

'E', 'e';

'I', 'i';

'O', 'o';

'U', 'u'};

switch letter

case vowels

disp('Гласная')

otherwise

disp('Согласная')

end

Вызовем функцию:

>> IsVowel(‘v’)

Согласная

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]