Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сидорова-004.С34.doc
Скачиваний:
91
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

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

Если нужно многократно проверить одно и то же выражение и сравнить его с разными значениями, то оператор If может стать слишком сложным. В этом случае идеально подходит оператор выбора Select Case, он имеет вид:

Select Case Проверяемое_выражение

Case Значение1

Операторы1 'Операторы, которые выполняются, если

'Проверяемое_выражение = Значению1

Case Значение2

Операторы2 'Операторы, которые выполняются, если

'Проверяемое_выражение = Значению2

Case Значение…

[Case Else

ОператорыElse ] 'Операторы, которые выполняются, если

'Проверяемое_выражение не равно ни одному

'из перечисленных ранее значений

End Select

Проверяемое_выражение, Значение1, Значение2, … могут содержать имена переменных, числовые значения или арифметические выражения.

Все Case проверяются по порядку сверху вниз. После того как нужный Case будет выполнен, сразу осуществляется выход за End Select.

Пример У5. В зависимости от наличия денег у пассажира дайте ему рекомендацию по выбору вида транспорта.

Текст программы решения задачи с использованием оператора выбора:

Sub Пример_У5_Транспорт()

Dim dengi As Integer 'Объявление целочисленной переменной dengi

dengi = Val(InputBox("Сколько у Вас денег?")) 'Ввод значения переменной dengi

Debug.Print "У Вас " & dengi & " рублей" 'Вывод сообщения

'о количестве денег

Select Case dengi 'Заголовок оператора анализа значения переменной dengi

Case Is < 11 'Случай, если значение переменной dengi меньше 11

Debug.Print "Вам придется пройти пешком"

Case 11 'Случай, если dengi = 11

Debug.Print "В Вашем распоряжении автобус, троллейбус или трамвай"

Case 12 'Случай, если dengi = 12

Debug.Print "Можете воспользоваться маршрутным такси"

Case 100 To 500 'Случай, если есть от 100 до 500 рублей

Debug.Print "К Вашим услугам такси"

Case Is > 5000 'Есть более 5000 рублей

Debug.Print "Можно подумать и о самолете"

Case Else 'Все прочие случаи

Debug.Print "Сами найдите применение имеющейся сумме"

End Select

End Sub

Ключевое слово Is используется для обозначения проверяемого выражения, записанного в заголовке оператора Select Case (в данном примере это переменная dengi). Слово Is можно не указывать при вводе программы, компилятор VBA добавит его сам.

В том случае, когда при нескольких значениях Проверяемого_выражения необходимо выполнять одни и те же команды, список этих значений следует указать после ключевого слова Case, разделяя их запятыми. Например:

Case 5, 6, 9 to 10, 13, 14, Is > 16

Такая запись проверяет, принадлежит ли значение выражения отрезку от 9 до 10 или равняется одному из значений: 5, 6, 13, 14, или оно больше 16.

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