Инструкции SELECT, AND, WHEN, OTHERWISE и NOP
SELECT приказывает интерпретатору выбрать одну инструкцию из перечня возможных. Она используется только вместе с WHEN, THEN, END и иногда с OTHERWISE. Инструкция END отмечает конец каждой группы SELECT. Инструкция SELECT выглядит следующим образом:
SELECT WHEN выражение1 THEN инструкция1 WHEN выражение2 THEN инструкция2 WHEN выражение3 THEN инструкция3 ... OTHERWISE инструкция инструкция инструкция END
Прим. | Инструкцию IF-THEN нельзя использовать с инструкцией SELECT, за исключением случаев, когда она следует за инструкциями WHEN или OTHERWISE. Формат инструкции SELECT, приведенный выше, можно интерпретировать следующим образом:
|
На диаграмме, приведенной ниже, представлена наглядная структура инструкции SELECT:
Инструкцию DO-END можно включить в инструкцию SELECT следующим образом:
SELECT WHEN выражение1 THEN DO инструкция1 инструкция2 инструкция3 END . . .
Инструкцию SELECT применяйте для использования одной переменной, которая может принимать несколько различных значений. С каждым из этих значений можно связать выполнение различных действий.
Допустим, Вы хотите составить памятку основных дел на неделю. Переменная day может принимать значения Понедельник - Пятница. В зависимости от дня недели (значение переменной), Вы можете вывести список дел на соответствующий день (с помощью инструкции). Процедура SELECT.CMD, приведенная ниже, решает поставленную задачу.
Прим. | Инструкция THEN или ELSE должна предшествовать инструкции, непосредственно выполняющей выбранное действие. |
/* Выбор дел на каждый день недели */ SAY 'Какой сегодня день?' Pull day SELECT WHEN day = 'ПОНЕДЕЛЬНИК' THEN SAY ' Знакомство с доской объявлений' WHEN day = 'ВТОРНИК' THEN SAY "Встреча с моей командой" WHEN day = 'СРЕДА' THEN NOP /* Нет операции */ WHEN day = 'ЧЕТВЕРГ' THEN SAY "Мой семинар" WHEN day = 'ПЯТНИЦА' THEN SAY "Рецензирование книги" OTHERWISE SAY "Выходной день, все может случиться!" END EXIT
Инструкция NOP: Если Вы не хотите предпринимать никаких действий для определенного выражения, то используйте инструкцию NOP (No Operation), как показано в предыдущем примере для значения СРЕДА.