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