Мегаобучалка Главная | О нас | Обратная связь


Условный оператор с несколькими условиями



2015-11-10 995 Обсуждений (0)
Условный оператор с несколькими условиями 0.00 из 5.00 0 оценок




Вышеприведённая схема каскада условных операторов используется достаточно часто, поэтому ряд языков программирования содержит специальную конструкцию для неё, позволяющую записать множественное ветвление несколько компактнее и менее подверженную ошибкам написания:

if условие1 then команды1elsif условие2 then команды2elsif условие3 then команды3...else командыN end;

порядок выполнения этого оператора в точности соответствует вышеприведённому каскаду простых операторов if-then-else, а отличие чисто формальное: вместо вложенных нескольких условных операторов эта конструкция является единым целым и содержит дополнительное ключевое слово elsif, требующее после себя очередное условие.

[править]Реализация

[править]Algol, Pascal

Паскаль унаследовал от Алгола-60 синтаксис, согласно которому в ветвях условного оператора может быть помещена только одна команда. Поэтому для размещения там большего количества команд они группируются в составной оператор с помощью пары ключевых слов begin и end. Ветвь else необязательна. begin и end необходимы, только если операторов несколько (например, из соображений единообразия оформления кода). В примере — оператор выбора в Паскале:

If условие then begin операторы; end else begin операторы; end;

Оператор выбора (CASE OF). Его параметры, синтаксис.

Условный оператор позволяет в процессе выполнения программы выбирать одно из двух возможных действий в зависимости от значения логического выражения. Оператор выбора (или оператор варианта) дает возможность выполнить одно из нескольких действий в зависимости от значения скалярного выражения или выражения ограниченного типа.

Формат оператора варианта:

case <селектор> of <константа 1> : <оператор 1>; ... <константа N> : <оператор N>else <оператор>end;

Здесь <селектор> – это выражение любого порядкового типа; <константа> - постоянная величина того же типа, что и селектор, представляет собой различные значения, которые может иметь селектор варианта, называется меткой варианта. После каждой метки располагается оператор. Когда одно и то же действие необходимо выполнить для нескольких различных значений селектора варианта, эти значения можно записать в виде списка.

Выполнение оператора выбора происходит так:

§ вычисляется выражение-селектор;

§ затем в списках констант ищется такое значение, которое совпадает с полученным значением селектора;

§ далее исполняется оператор, помеченный данной константой. Если такой константы не найдено, то происходит переход к выполнению оператора, следующего после else.

Изображение оператора варианта на блок-схеме приведено на рисунке.

Изображение оператора варианта на блок-схеме

Примеры использования

Селектор интервального типа:

case I of 1..10 : writeln('число ', I:4, ' в диапазоне 1 - 10'); 11..20 : writeln('число ', I:4, ' в диапазоне 11 - 20'); 21..30 : writeln('число ', I:4, ' в диапазоне 21 - 30')else writeln('число ', I:4, ' вне пределов контроля')end;

Селектор целочисленного типа:

case I of 1 : Z := I + 10; 2 : Z := I + 100; 3 : Z := I + 1000end;

Селектор перечисляемого пользовательского типа:

var Season: (Winter, Spring, Summer, Autumn);begin . . . case Season of Winter: writeln('Зима'); Spring: writeln('Весна'); Summer: writeln('Лето'); Autumn: writeln('Осень') end;end.

Пример программы с использованием оператора case, которая по введенному номеру дня недели выводит на экран его название на русском языке.

program Day_Week;var Day: byte;begin write('Введите номер дня недели: '); readln(Day); case Day of {Вычисление значения селектора и выбор} 1: writeln('Понедельник'); 2: writeln('Вторник'); 3: writeln('Среда'); 4: writeln('Четверг'); 5: writeln('Пятница'); 6: writeln('Суббота'); else 7: writeln('Воскресенье'); end;end.

В данном примере на экран выводится приглашение "Введите номер дня недели: ", с клавиатуры считывается целочисленное значение дня недели и присваивается переменной Day. Затем, в зависимости от значения селектора Day, обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Например, если значение Day равно 3, то реализуется оператор writeln('Среда'). Если значение Day равно 7, а ни одна из констант не равна этому значению селектора, то выполняется оператор, стоящий за словом else (на экран выводится текст "Воскресенье"). Если слово else отсутствует, то активизируется оператор, находящийся за словом end, т.е. первый оператор, за границей case. Если значение Day не равно значению ни одной из констант выбора (например, Day=8 или Day=0), то активизируется оператор, находящийся за словом end, т.е. первый оператор за границей case - оператор end.



2015-11-10 995 Обсуждений (0)
Условный оператор с несколькими условиями 0.00 из 5.00 0 оценок









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

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (995)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)