Язык процедур 2-REXX для OS-2

Инструкции 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, приведенный выше, можно интерпретировать следующим образом:
  • Если выражение1 истинно, то выполняется инструкция1. После этого обработка продолжается с инструкции, следующей за END. Инструкция END отмечает конец инструкции SELECT.
  • Если выражение1 ложно, проверяется выражение2. Если выражение2 истинно, то выполняется инструкция2 и обработка продолжается с инструкции, следующей за END.
  • Тогда и только тогда, когда все указанные выражения ложны, обработка продолжается с инструкции, следующей за OTHERWISE.

На диаграмме, приведенной ниже, представлена наглядная структура инструкции 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), как показано в предыдущем примере для значения СРЕДА.



Содержание раздела