Инструкция case
В предыдущем примере, в программе контроля веса, множественный выбор был реализован при помощи вложенных одна в другую инструкций if. Такой подход не всегда удобен, особенно в том случае, если количество вариантов хода программы велико.
В языке Delphi есть инструкция case, которая позволяет эффективно реализовать множественный выбор. В общем виде она записывается следующим образом:
case Селектор of список1: begin { инструкции 1 } end; список2: begin { инструкции 2 } end; списокМ: begin { инструкции N } end; else begin { инструкции) end; end;
Где:
- Селектор – выражение, значение которого определяет дальнейший ход выполнения программы (т. е. последовательность инструкций, которая будет выполнена);
- Список N – список констант. Если константы представляют собой диапазон чисел, то вместо списка можно указать первую и последнюю константу диапазона, разделив их двумя точками. Например, список 1, 2, 3, 4, 5, 6 может быть заменен диапазоном 1..6.
Выполняется инструкция case следующим образом:
- Сначала вычисляется значение выражения-селектора.
- Значение выражения-селектора последовательно сравнивается с константами из списков констант.
- Если значение выражения совпадает с константой из списка, то выполняется соответствующая этому списку группа инструкций. На этом выполнение инструкции саsе завершается.
- Если значение выражения-селектора не совпадает ни с одной константой из всех списков, то выполняется последовательность инструкций, следующая за else.
Синтаксис инструкции case позволяет не писать else и соответствующую последовательность инструкций. В этом случае, если значение выражения не совпадает ни с одной константой из всех списков, то выполняется следующая за case инструкция программы.
На рис. 2.7 приведен алгоритм, реализуемый инструкцией case.
Рис. 2.7. Алгоритм, реализуемый инструкцией case Ниже приведены примеры инструкции case.