Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Условный оператор множественного выбора Case

Читайте также:
  1. C Описываем оператор-функцию
  2. II. Обеспечение возможности правильного выбора
  3. А. Нормативное применение теории рационального выбора
  4. А.1 Обзор программных операторов
  5. Анализ структуры интегрированной информационной системы управления предприятием регионального оператора связи
  6. Б. Концепции публичного выбора и финансирования социальной сферы
  7. Б. Позитивное использование теории рационального выбора

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

Case <Переменная> Of

<Значение 1>: <Команда 1>;

...

<Значение N>: <Команда N>;

else <Команда>;

end;

В качестве возможных Значений анализируемой переменной могут использоваться подходящие по типу константы, а также непрерывные интервалы значений, задаваемые парами констант, разделенными двоеточием.

На рис. 4 приведена блок-схема алгоритма, реализуемого оператором выбора (варианта).

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

Листинг 2.13. Использование оператора множественного выбора

Var

X: Integer; {Описание анализируемой переменной}

Sign: Integer; {Описание переменной для хранения результата анализа

(сигнатуры)}

Begin

Case X of {Анализируем параметр X }

-2147483648..-1: Sign:= -1; {Если значение переменной X

отрицательно (от минимально допустимого значения

переменной типа Integer до -1), то переменной Sign будет

присвоено значение -1}

1..2147483647: Sign:= 1; {Если значение переменной X

положительно (от 1 до максимально допустимого значения

переменной типа Integer), то переменной Sign будет

присвоено значение 1}

0: Sign:= 0; {Если значение переменной X нулевое, то переменной

Sign будет присвоено значение 0}

end;

Первый вариант определения сигнатуры с помощью вложенных операторов If..Then..Else является более корректным, так как при любом значении переменной X переменная Sign также получит какое-либо значение в данном фрагменте программы.

Логика же второго примера подразумевает ограничение возможных значений анализируемой переменной интервалом -2147483648.. 2147483647.

В таких случаях целесообразно использовать секцию Else оператора множественного выбора для отработки неподдерживаемого значения параметра X. В этой секции могут выполняться различные действия, такие, как установка переменной Sign значения, отличного от 0, 1 и -1, или, например, возбуждение исключительной ситуации.

Изменим предыдущий пример таким образом, чтобы в случае обнаружения значения переменной X, выходящего за пределы допустимого интервала, переменной Sign устанавливалось значение -2. Измененный код приведен в листинге 2.14.

Листинг 2.14. Модифицированный код

Var

X: Integer; (Описание анализируемой переменной}

Sign: Integer; {Описание переменной для хранения результата анализа

(сигнатуры)}

Begin

Case X of {Анализируем параметр X}

-2147483648..-1: Sign:= -1; {Если значение переменной X

отрицательно (от минимально допустимого значения

переменной типа Integer до -1), переменной Sign будет

присвоено значение -1}

1..2147483647: Sign:= 1;

{Если значение переменной X положительно (от 1 до

максимально допустимого значения переменной типа Integer),

переменной Sign будет присвоено значение 1}

0: Sign:= 0; {Если значение переменной X нулевое, значение

переменной Sign также нулевое}

Else: Sign:= -2; {Если значение переменной X не удовлетворяет ни

одному из трех условий, переменной Sign присваивается значение - 2}

end;


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


<== предыдущая страница | следующая страница ==>
Описание переменных| Оператор цикла с параметром For

mybiblioteka.su - 2015-2024 год. (0.006 сек.)