Оператор выбора Select Case
Этот оператор также имеет два формата. Первый формат имеет следующий синтаксис:
Select Case <Выражение> [Case <Список значений1> <Операторы1>]
[Case <Список значений2> <Операторы2>]
…………………………………..
[Case <Список значенийN> <ОператорыN>]
[Case Else <Операторы_Else>]
End Select
Здесь Выражение – это любое выражение числового, строкового или логического типа. В этой конструкции вместо вычисления логического условия выполняется сравнение значения Выражения с каждым из параметров, заданным в
Списке значений. Параметры в Списке
перечисляются через запятую или определяются диапазоном, который задается ключевым словом To. В операторе может быть произвольное число блоков Case. Если значение Выражения совпало с одним из элементов Списка или попало в диапазон значений, то выполняются соответствующие операторы, после чего произойдет завершение работы оператора Select Case. Если значение Выражения не совпало ни с одним из параметров, то выполняются операторы необязательной части
Case Else.
Во втором формате оператора Select Case вместо
части Case Else используется часть Case is.
Например, решим пример с параболами с помощью оператора Select Case.
Private Sub Command1_Click()
Dim x As Single, y As Single
x = InputBox("Введите значение аргумента") Select Case x
Case -6 |
To -4 |
: |
y = -8 * (x + 5) ^ 2 + 8 |
Case -4 |
To 4 |
: |
y = -x ^ 2 + 16 |
Case 4 To 8 |
: |
y = -13 / 4 * (x - 6) ^ 2 + 13 |
Case Else |
: |
y = 0 |
End Select |
|
|
Print y
End Sub
Вданном примере значение переменной x вещественного типа сравнивается с числами из диапазонов: от –6 до –4, от –4 до 4 и от 4 до 8. Если значение x попадает в один из диапазонов, то вычисляется соответствующее значение y, если нет, тогда y=0.
Если применить второй формат к рассмотренному примеру, то получим:
Select Case x |
|
|
Case -6 |
To -4 |
: |
y = -8 * (x + 5) ^ 2 + 8 |
Case -4 |
To 4 |
: |
y = -x ^ 2 + 16 |
Case 4 To 8 |
: |
y = -13 / 4 * (x - 6) ^ 2 + 13 |
Case is > 8 |
: |
y = 0 |
Case is < -6 |
: |
y = 0 |
End Select |
|
|