Опубликовано: 2018-04-07 08:00:00
Оператор SELECT...CASE
В этой статье мы познакомимся с ещё одним интересным оператором – это оператор множественного выбора.
Эта конструкция позволяет исполнять различные блоки операторов в зависимости от истинности выражений указанных в операторах CASE.
Синтаксис:
SELECT CASE <ключ_выбора (или выражение)>
[CASE <список_выбора (или выражение)>, [операторы1]]
...
[CASE <список_выбора (или выражение)>, [операторыN]]
[CASE ELSE <блок_исполняемых_операторов>]
END SELECT
где:
<ключ_выбора> – выражение, обычно представляет собой переменную;
<список_выбора> – список значений (условие, диапазон значений);
<оператор> – исполнительный оператор.
Алгоритм множественного выбора заключается в следующем:
- Вычисляется значение выражения, записанного в SELECT CASE;
- Проверяется, удовлетворяет ли это значение одному из указанных в CASE условий;
- Если значение удовлетворяет какому-то условию, выполняется блок команд, следующий за CASE.
После выполнения того или иного блока команд управление передается команде, следующей за END SELECT.
Теперь на примере:
- INPUT ASK$
- SELECT CASE ASK$
- CASE "PRIVET"
- PRINT "PRIVET"
- CASE "POKA"
- PRINT "POKA"
- CASE "KAK DELA"
- PRINT "NORMALNO!"
- END SELECT
Рисунок 1 – Пример использования SELECT...CASE
Рисунок 2 – Результат выполнения SELECT...CASE
Вышеуказанный пример показывает выполнение оператора выбора (или варианта) со строковыми переменными (за наличие строки отвечает символ $), если же вы хотите воспользоваться числовыми переменными здесь тоже все просто.
Рассмотрим задачу.
Задача: Компьютер спрашивает у вас оценку и выводит на экран сообщение (запрограммировать при помощи оператора множественного выбора SELECT...CASE).
- INPUT "KAKUYU TY POLUCHIL OTSENKU?"; OTM
- SELECT CASE OTM
- CASE 1, 2
- PRINT "KOSHMAR!!!"
- CASE 3
- PRINT "NEVAGHNO!"
- CASE 4
- PRINT "NEPLOHO!"
- CASE 5
- PRINT "MOLODETS!!!"
- CASE ELSE
- PRINT "TAKIKH OTSENOK NET."
- END SELECT
Рисунок 3 – Использование целых значений в операторе SELECT...CASE
Рисунок 4 – Результат выполнения SELECT...CASE с целочисленными значениями
В общем, если говорить достаточно грубо, то оператор множественного выбора SELECT...CASE ни что иное как модифицированный оператор IF...THEN, хотя профессиональные программисты могут со мной поспорить на счет этого. Здесь главное то, что бы вы, зная синтаксис, могли достаточно быстро написать программу при помощи того или иного оператора.
Хочу привести еще один интересный пример. Посмотрите эту задачу самостоятельно.
Задача: Дан возраст человека как натуральное число N. Обеспечить вывод этого числа с соответствующим словом: «год», «года», «лет».
- INPUT N
- PRINT N;
- SELECT CASE (N + 9) MOD 10 - ((N MOD 100) \ 10 = 1) * 5
- CASE 0: PRINT "GOD"
- CASE 1 TO 3: PRINT "GODA"
- CASE ELSE: PRINT "LET"
- END SELECT
Рисунок 5 – Выражение в операторе множественного выбора
Рисунок 6 – Склонение возраста при помощи оператора SELECT...CASE
Спасибо за прочтение этой статьи.