QBASICBOOK.ru: сайт про QB64

Опубликовано: 2018-04-07 08:00:00

Оператор SELECT...CASE

В этой статье  мы познакомимся с ещё одним интересным оператором – это оператор множественного выбора.

Эта конструкция позволяет исполнять различные блоки операторов в зависимости от истинности выражений указанных в операторах CASE.

Синтаксис:

SELECT CASE <ключ_выбора (или выражение)>

 [CASE <список_выбора (или выражение)>, [операторы1]]

 ...

 [CASE <список_выбора (или выражение)>, [операторыN]]

 [CASE ELSE <блок_исполняемых_операторов>]

END SELECT

где:

<ключ_выбора>  –  выражение, обычно представляет собой переменную;

<список_выбора>  – список значений (условие, диапазон значений);

<оператор> – исполнительный оператор.

Алгоритм множественного выбора заключается в следующем:

После выполнения того или иного блока команд управление передается команде, следующей за END SELECT.

Теперь на примере:


  1. INPUT ASK$
  2. SELECT CASE ASK$
  3.   CASE "PRIVET"
  4.     PRINT "PRIVET"
  5.   CASE "POKA"
  6.     PRINT "POKA"
  7.   CASE "KAK DELA"
  8.     PRINT "NORMALNO!"
  9. END SELECT

Рисунок 1 – Пример использования SELECT...CASE

Рисунок 1 – Пример использования SELECT...CASE

Рисунок 2 – Результат выполнения SELECT...CASE

Рисунок 2 – Результат выполнения SELECT...CASE

Вышеуказанный пример показывает выполнение оператора выбора (или варианта) со строковыми переменными (за наличие строки отвечает символ $), если же вы хотите воспользоваться числовыми переменными здесь тоже все просто.

Рассмотрим задачу.

Задача: Компьютер спрашивает у вас оценку и выводит на экран сообщение (запрограммировать при помощи оператора множественного выбора SELECT...CASE).


  1. INPUT "KAKUYU TY POLUCHIL OTSENKU?"; OTM
  2. SELECT CASE OTM
  3.   CASE 1, 2
  4.     PRINT "KOSHMAR!!!"
  5.   CASE 3
  6.     PRINT "NEVAGHNO!"
  7.   CASE 4
  8.     PRINT "NEPLOHO!"
  9.   CASE 5
  10.     PRINT "MOLODETS!!!"
  11.   CASE ELSE
  12.     PRINT "TAKIKH OTSENOK NET."
  13. END SELECT

Рисунок 3 – Использование целых значений в операторе SELECT...CASE

Рисунок 3 – Использование целых значений в операторе SELECT...CASE

Рисунок 4 – Результат выполнения SELECT...CASE с целочисленными значениями

Рисунок 4 – Результат выполнения SELECT...CASE с целочисленными значениями

В общем, если говорить достаточно грубо, то оператор множественного выбора SELECT...CASE ни что иное как модифицированный оператор IF...THEN, хотя профессиональные программисты могут со мной поспорить на счет этого. Здесь главное то, что бы вы, зная синтаксис, могли достаточно быстро написать программу при помощи того или иного оператора.

Хочу привести еще один интересный пример. Посмотрите эту задачу самостоятельно.

Задача: Дан возраст человека как натуральное число N. Обеспечить вывод этого числа с соответствующим словом: «год», «года», «лет».


  1. INPUT N
  2. PRINT N;
  3. SELECT CASE (N + 9) MOD 10 - ((N MOD 100) \ 10 = 1) * 5
  4.   CASE 0: PRINT "GOD"
  5.   CASE 1 TO 3: PRINT "GODA"
  6.   CASE ELSEPRINT "LET"
  7. END SELECT

Рисунок 5 – Выражение в операторе множественного выбора

Рисунок 5 – Выражение в операторе множественного выбора

Рисунок 6 – Склонение возраста при помощи оператора SELECT...CASE

Рисунок 6 – Склонение возраста при помощи оператора SELECT...CASE

Спасибо за прочтение этой статьи.

 

Прикрепленные файлы:

< Предыдущая статья
Функции ASC и CHR$
Следующая статья >
Простейший калькулятор

Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.