Программа 20.9. Использование оператора if. . .Then. . .Else !



Программа 20.9. Использование оператора if. . .Then. . .Else !

Sub branch()

Dim a, b, с

a = -10

b= 0

с = 10

If c>a Then c=c+l : MsgBox(c) Else a=a-l : MsgBox(a)

If с > 20 Then

c=c+1

ElseIf с = -a + b + 1 Then

MsgBox (c) Else

MsgBox ("He может быть")

End If

End Sub

Вышерассмотренные цепочки операторов if. . .Then.. .Eiseif обладают большой гибкостью и позволяют решить все проблемы, однако если выбор одной из нескольких возможностей все время основан на различных значениях одного и того же выражения, гораздо удобнее использовать предназна ченный для этого оператор выбора select case, имеющий следующий синтаксис:

Select Case выражение [ Case списокЗначенийN



[блокОператоровN]] ... [ Case Else

[блокОператоров_Е1зе]] End Select

Проверяемое выражение вычисляется в начале работы оператора select case. Это выражение может возвращать значение любого типа — например логическое, числовое или строковое. При выполнении оператора Select case значение проверяемого выражения вычисляется один раз и запоминается.

Далее идет список альтернатив, начинающихся ключевым словом case. В каждой альтернативе указан список значений, представляющий собой несколько возможных значений, разделенных запятой. При выполнении оператора select Case значение сравнивается со списками значений альтернатив. Элементы списка значений могут иметь одну из следующих форм:

  • Значение — в этом случае проверяется, совпадает ли значение проверяемого выражения с указанным значением;
  • Значение1 то Значение2 — проверяется, находится ли значение проверяемого выражения в диапазоне указанных значений;
  • Is логическаяОперация значение — в данном случае проверяется, удовлетворяет ли значение проверяемого выражения указанному логическому условию.

Вся конструкция работает следующим образом. Если хотя бы один из элементов списка значений соответствует проверяемому выражению, то выполняется соответствующий блок операторов и на этом выполнение оператора Select Case заканчивается. Если же ни один из элементов всех списков альтернатив не соответствует значению проверяемого выражения, выполняется блокОператоров_Е1sе (если, конечно, присутствует ключевое слово Case Else).

В следующем примере при помощи функции inputBox переменной t присваивается некое значение, после чего посредством оператора select Case проверяется положительность значения переменной. Заметьте, что предусмотрен вариант, когда пользователь введет не число 3 .



Содержание раздела