Национальный исследовательский университет "Высшая Школа Экономики"
Опубликован: 01.04.2010 | Доступ: свободный | Студентов: 3836 / 673 | Оценка: 4.45 / 4.06 | Длительность: 08:48:00
ISBN: 978-5-9556-0119-9
Специальности: Программист
Лекция 6:

Операторы управления

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Оператор выбора Select Case

При необходимости анализировать большое количество условий в качестве альтернативы условному оператору If используется оператор Select Case, который создает более читабельную программу. Оператор Select Case - это оператор выбора ветви в зависимости от значения тестируемого выражения.

Синтаксис оператора

Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
  • testexpression - тестируемое выражение. Обязательный элемент;
  • строки Case задают возможные значения тестируемого выражения;
  • expressionlist - список значений тестируемого выражения, который определяет выполняемую последовательность операторов: если значение тестируемого выражения найдено в списке expressionlist-1, то выполняются операторы statements-1 и т.д.;
  • строка Case Else определяет операторы, которые выполняются, если значение не найдено ни в одном списке;
  • statements-n, elsestatements последовательности операторов.

Значения списка могут быть представлены константами или выражениями, имеющими числовые или символьные значения. Элементы списка перечисляются через запятую или могут иметь одну из двух форм:

  • expression (нижняя граница) To expression (верхняя граница) - задает диапазон значений списка: "от" и "до";
  • Is comparisonoperator (оператор сравнения) - задает условие на значение тестируемого выражения, при справедливости которого выполняются последующие операторы.
Важно:
  • По крайней мере, один список значений тестируемого выражения должен присутствовать в операторе.
  • Хотя бы одна из совокупностей операторов должна быть не пустой.
  • Тестируемое выражение может быть задано формулой.
  • Если конструкции Case Else нет в операторе выбора и значение не найдено ни в одном списке, ни одна из последовательностей операторов не выполняется.
  • После выполнения выбранной последовательности операторов соответствие тестируемого выражения другим спискам значений не проверяется, и управление передается оператору, следующему за End Select.

Примеры

  1. Пусть необходимо вычислить значения переменной X в зависимости от значений переменной A по формуле:
    X=\left\{\begin{array}{ll}(A-1)^*A, &\text{для }A=7,9,12,15 \\ \frac{A}{2},&\text{если }A\le 5 \\ A+1, &\text{для остальных значений} \end{array}\right.
    Пусть переменная A изменяется от -5 до 15 с шагом 1. В операторе выбора ( рис. 6.3) используются два списка значений: в первом списке значения перечисляются через запятую; во втором списке после ключевого слова Is задается условие на значение. Для расчета при всех остальных значениях A используется ключевое слово Case Else.
    Пример применения оператора Select Case

    Рис. 6.3. Пример применения оператора Select Case
  2. Процедура меняет цвет заливки первых двадцати ячеек столбца A ( рис. 6.4).

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

    Пример применения оператора Select Case

    Рис. 6.4. Пример применения оператора Select Case
< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Дмитрий Денисов
Дмитрий Денисов

Еще раз повторяю вопрос  - отправил договор и сканы документов по почте - в начале августа, до  5 го, внес предоплату - летом действовала скидка - чтобы пройти курс в августе, но я уезжал в Москву. По возвращению - и  в течение месяца - никакого ответа, никаких зачислений, ничего. Как проверить, пришли ли мои документы в Интуит, предоплата, почему нет зачисления.

Дмитрий Денисов
Дмитрий Денисов

Как записаться на курс, оплатить, не ориентируюсь в программе.

Ранее у Вас учился.

Работаю преподавателем, есть справка. Как получить скидку, т.е. оплата 2000


 

Денис Ермаков
Денис Ермаков
Россия
Alexander Vizelka
Alexander Vizelka
Россия