Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Для повышения читабельности исходных текстов программ предусмотрен условный оператор множественного выбора 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;





Дата публикования: 2014-11-02; Прочитано: 578 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...