Инструкция Select Case
Инструкция Select Case выполняет одну из нескольких групп инструкций в зависимости от значения некоторого выражения. Ниже приведен ее синтаксис:
Select Case Выражение
[Case Список_выражений-n
[Инструкции-n
[Case Else
[Инструкции_else]]
Еnd Select
Элементы синтаксиса инструкции Select Case представлены в табл.2
Таблица 2 Элементы синтаксиса инструкции Select Case
Элемент | Описание |
Выражение Список_выражений-n Инструкции-n Инструкции_else | Обязательный элемент — любое числовое или строковое выражение Обязательный элемент синтаксиса при наличии предложения Case. Представляет собой список с разделителями. Синтаксис такого списка может быть одним из представленных ниже: Выражение, Выражение_1 To Выражение_2, Is Оператор сравнения_сравнения выражения Ключевое слово To задает диапазон значений. При использовании ключевого To слова перед ним должно находиться меньшее значение. Ключевое слово Is с операторами сравнения [не должны использоваться операторы Is и Like) задает диапазон значений. Если ключевое слово Is не указано, оно вставляется по умолчанию. Необязательный элемент — одна или несколько инструкций, которые выполняются в том случае, если выражение совпадает с любым компонентом списка Список_выражений-n Необязательный элемент — одна или несколько инструкций, выполняемых в том случае, если выражение не совпадает ни с одним из предложений Case |
Перейдем к алгоритму работы инструкции Select Case. Если выражение совпадает с любым выражением из Списка_выражений-n в предложении Case, то все инструкции, следующие за данным предложением Case до следующего выражения Case (в случае если это предложение является последним, то до инструкции End Select). После этого управление передается инструкции, следующей за End Select.
В Н И М АН И Е . Если выражение совпадает с выражениями из списка в нескольких предложениях Сазе, то выполняются только инструкции, расположенные после первого из этих предложений.
Отметим некоторые свойства инструкции Case Else:
Предложение Case Else задает список Инструкции_else. Эти инструкции будут
выполнены, если нет ни одного совпадения Выражения и элемента Список_вы-
ражений-n ни в одном из предложений Case .
Хотя предложение Case Else не является обязательным, рекомендуется поме-
щать его в блок Select Case, чтобы предусмотреть неожиданные значения выра-
жения.
Если ни в одном предложении Case элемент Слисок_выражений-n не содержит
значения, отвечающего аргументу Выражение, и отсутствует инструкция Case Else, выполнение программы продолжается с инструкции, следующей за инст-
рукцией End Select.
В предложении Case допускается использование нескольких выражений или
диапазонов. Например, допустимым является следующее предложение Case :
Case 1 То 5, 8 То 10, 15, 18, Is > Мах _number
(ПРИМЕЧАНИЕ Обратите внимание, что следует отличать оператор сравнения Is от ключевого слова 1з, которое используется в инструкции Select Case.
Допускается вложенность инструкций Select Case. При этом каждой вложен-
ной инструкции Select Case должна соответствовать инструкция End Select.
Sub testsub1()
Dim sngналог As Single, intпараметр, sngсумма
intпараметр = Val(InputBox("введите целое число:"))
sngсумма = Val(InputBox("введите число:"))
Select Case intпараметр
Case 0
sngналог = sngсумма * 0
Case 1
sngналог = sngсумма * 0.05
Case 2
sngналог = sngсумма * 0.1
Case 3
sngналог = sngсумма * 0.15
Case 4
sngналог = sngсумма * 0.2
Case Else
sngналог = sngсумма * 0
End Select
MsgBox "sngналог=" & sngналог
End Sub
В этом примере осуществляется выбор ставки налога (0; 0,05; 0,10; 0,15; 0,20) в
зависимости от значения выражения intпараметр. Предусмотрен также вариант
выбора, когда значения выражения intпараметр не совпадают ни с одним выражением в предложениях Case.