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

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

Select Case Тестируемое выражение

Case Условие выбора 1

Блок операторов 1

……………

Case Условие выбора n

Блок операторов n

Case Else

Блок операторов

End Select

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

Пример

Рассмотрим пример начисления комиссионных на основе оператора выбора Select Case. В этом примере размер комиссионных зависит только от объема проданной продукции по правилу, приведенному в табл. 7.

Таблица 7

Объем продаж, тыс. руб. Комиссионные, %
От 0 до 9999
От 10000 до 39999
40000 и более

Программный код

Option Explicit

Sub PR6()

Dim opr As Double

Dim prem As Double

opr = Val(InputBox("Введите объем продаж"))

Select Case opr

Case 0 To 9999

prem = 0.08 * opr

Case 10000 To 39999

prem = 0.1 * opr

Case Is >= 40000

prem = 0.14 * opr

End Select

MsgBox ("Комиссионные=" & prem)

End Sub

Слово Is, используемое в программе, является ключевым словом VBA, обозначающим тестируемое выражение в операторе Case.

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

Пример

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

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

Операторы цикла

Циклический процесс – это процесс, в котором один оператор или группа операторов выполняются многократно при различных значениях аргумента.

Оператор цикла с параметром For – Next

Оператор цикла For – Nextиспользуется, когда заранее известно, сколько раз должно повториться тело цикла.

Общий вид оператора цикла с параметром выглядит следующим образом:

For Счетчик = Начальное значение To Конечное значение Step Шаг

Блок операторов

Next Счетчик

Цикл For – Next обеспечивает выполнение блока операторов (тела цикла) n раз при последовательном изменении счетчика от начального до конечного значения с указанным шагом изменения.

Оператор выбора Select Case - student2.ru .

Если Step Шаг в конструкции отсутствует, то по умолчанию считается, что шаг равен 1.

Пример 1

Задано натуральное число n. Вычислить n! (факториал n).

Напомним, что n! = 1×2×3×4×…×n.

Например, 5! = 1×2×3×4×5 = 120.

Программный код

Option Explicit

Sub PR7()

Dim n As Integer

Dim F As Double

Dim i As Integer

n = Val(InputBox("Введите n"))

F = 1

For i = 1 To n

F = F * i

Next i

MsgBox ("Факториал числа " & n & "=" & F)

End Sub

Пример 2

Вычислить y=sin0.1+sin0.2+sin0.3+…+sin10

Программный код

Option Explicit

Sub PR8()

Dim x As Double, y As Double, summa As Double

summa = 0

For x = 0.1 To 10 Step 0.1

summa = summa + Sin(x)

Next x

MsgBox ("Сумма=" & summa)

End Sub

Оператор цикла While – Wend

Оператор цикла While – Wend используется для организации цикла с неизвестным заранее числом повторений тела цикла. Общий вид цикла While – Wendвыглядит следующим образом:

While Условие

Блок операторов

Wend

Цикл While – Wend обеспечивает многократное выполнение блока операторов, пока условие принимает значение True (истина).

Пример 1

Вычислить и вывести значения функции Y при X изменяющемся от –10 до 10 с шагом 2.

Оператор выбора Select Case - student2.ru

Программный код

Option Explicit

Sub PR9()

Dim X As Integer

Dim Y As Double

X = –10

While X <= 10

If X <> 2 Then

Y = 1 / (X – 2) + X

MsgBox ("Y=" & Y)

Else

MsgBox ("функция не определена")

End If

X = X + 2

Wend

End Sub

Пример 2

Задан натуральный ряд чисел. Вычислить сумму четных чисел данного ряда.

Программный код

Option Explicit

Sub PR10()

Dim N As Integer, I As Integer, S As Double

N = Val(InputBox("Введите N"))

I = 2 : S = 0

While I <= N

S = S + I

I = I + 2

Wend

MsgBox (S)

End Sub

Пример 3

Вкладчик положил на счет 1000 рублей. Через сколько дней вклад достигнет 20000 рублей, если начисляемый процент 0,6 % в день.

Ответ: 500 дней.

Программный код

Option Explicit

Sub PR11()

Dim V As Double

Dim Pr As Double

Dim Kol As Integer

V = Val(InputBox("Введите начальный взнос"))

Kol = 0

While V <= 20000

Pr = V * 0.6 / 100

V = V + Pr

Kol = Kol + 1

Wend

MsgBox ("20000 руб. вклад достигнет за " & Kol & " дней")

End Sub

Наши рекомендации