русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор выбора case


Дата добавления: 2015-07-23; просмотров: 787; Нарушение авторских прав


Как уже было рассмотрено в разделе про условный оператор, множественный выбор может быть реализован при помощи вложенных один в другой операторов if. Такой подход не всегда удобен, особенно в том случае, если количество вариантов хода программы велико.

Специально для целей эффективного осуществления множественного выбора в языке Object Pascal предусмотрен оператор выбора case.


В общем виде оператор case записывается следующим образом:

 

case<ключ выбора> of

<список выбора 1>: оператор 1;

<список выбора 2>: оператор 2;

...

<список выбора N>: оператор N;

Else

оператор для else;

end;

 

где <ключ выбора> – выражение, значение которого определяет дальнейший ход выполнения программы;

<список выбора X> – список значений <ключа выбора>, если <ключ выбора> будет равен одному из значений <списка выбора X>, то будет выполнен оператор X.

Если значения в списке выбора представляют собой диапазон чисел, то вместо списка можно указать первую и последнюю константу диапазона, разделив их двумя точками. Например, список 1, 2, 3, 4, 5, 6 может быть заменен диапазоном 1..6.

Выполняется оператор caseследующим образом:

1. Сначала вычисляется значение выражения <ключа выбора>.

2. Значение выражения <ключа выбора> последовательно сравнивается со значениями из списков выбора.

3. Если значение выражения <ключа выбора> совпадает хотя бы с одним значением из списка выбора, то выполняется соответствующий этому списку оператор (может быть составной). На этом выполнение оператора саsезавершается.

4. Если значение выражения <ключа выбора> не совпадает ни с одной константой из всех списков, то выполняется оператор для else.

 

На рис. 3.4 приведен алгоритм, реализуемый оператором case.



Оператор выбора case также как и условный оператор if может быть неполным. Т.е. синтаксис оператора caseпозволяет не использовать else и соответствующий оператор для else. В этом случае, если значение выражения <ключа выбора> не совпадает ни с одним значением из всех списков, то выполняется следующий за case ... end;оператор программы.

 
 

 

 


Рис. 3.4. Алгоритм оператора выбора

 

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

 

Вариант 1:

 

casenDayOfWeek of

1,2,3,4,5: sDay := ’Рабочий день. ’ ;

6: sDay := ’Cyббoтa! ’;

7: sDay := ’Воскресенье! ’;

end;

 

 

Вариант 2:

casenDayOfWeek of

1..5: sDay := ’Рабочий день.’ ;

6: sDay := ’Cyббoтa! ’;

7: sDay := ’Воскресенье! ’;

end;

 

 

Вариант 3:

casenDayOfWeek of

6: sDay := ’Cyббoтa!’;

7: sDay := ’Воскресенье!’;

elsesDay := ’Рабочий день.’ ;

end;

 

На первый взгляд все три варианта равноценны. Однако, вариант 3 использовать не рекомендуется, так как в нем не учитывается ошибочная, но вполне вероятная ситуация, когда значение номера дня недели может быть меньше одного либо больше семи. В этом случае в варианте 3 такой день будет считаться рабочим, что неверно.




<== предыдущая лекция | следующая лекция ==>
Условный оператор if | Оператор цикла с параметром for


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.435 сек.