Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_проектор.doc
Скачиваний:
2
Добавлен:
21.04.2019
Размер:
239.1 Кб
Скачать

If условие Then [инструкции] [Else инструкции_Else]

или

If условие Then

[инструкции]

[elseif условие –n Then

[инструкции_ elseif]]

[else

[инструкции_ else]]

End If

Пример:

Option Compare Database

Option Explicit

Private intNum As Integer

Sub ifTest()

Dim strMessage As String

intNum=InputBox(“Введите любое число между 1 и 15”)

If intNum>=1 and IntNum<=15 Then

Iftest2

Else

MsgBox “Число вне диапазона!”

End If

End Sub

Sub iftest2()

If intNum<10 then

MsgBox “Введенное число” & intNum & “меньше 10!”

Elseif intNum=10 then

MsgBox “Введенное число” & intNum & “равно 10!”

Else

MsgBox “Введенное число” & intNum & “больше 10!”

End If

End Sub

Инструкция Select Case

Select Case выражение

[Case списокВыражений – n

[инструкции – n]]

[Case Else

[инструкции – else]]

End Select

выражение, выражение To выражение

Is операторСравнения выражение

Sub iftest2()

Select Case intNum

Case 1 to 5

MsgBox “Введенное число ” & intNum & “ между 1 и 5!”

Case 6, 7, 8, 9

MsgBox “Введенное число ” & intNum & “ между 6 и 9!”

Case 10

MsgBox “Введенное число ” & intNum & “ равно 10!”

Case Is <15 and intNum>10

MsgBox “Введенное число” & intNum & “ больше 10 и меньше 15!”

Case Else

MsgBox “Введенное число” & intNum & “ равно 15!”

End Select

End Sub

Функция IIF()

IIF (<условие>, <выражение1>, <выражение2>)

Function y()

Dim x As Double

X=InputBox(“Введите значение Х:”)

Y=IIF(X>1, 0.5*X^1/3, IIF(X<0.05*abs(x)^0.25,1/3*X^2))

Beep

Msgbox “Y=” & str(y)

End Function

Циклические конструкции

For…Next, For Each…Next, Do…Loop, Do While…Loop, Do Until…Loop, Do… Loop Until

Программирование арифметических циклов

Цикл с параметром ForNext

Синтаксис конструкции:

For <управляющая переменная>= <начальное значение> To <конечное значение> [Step <шаг>]

<инструкции тела цикла>

[Exit For]

[<инструкции тела цикла>]

Next [<управляющая переменная>]

Sub fortest()

Dim i As Integer

For i = 1 To 10

If i Mod 2 = 0 Then

Debug.Print i & "четный номер"

Else

Debug.Print i & " нечетный номер"

End If

Next

End Sub

Цикл For Each…Next

Синтаксис инструкции:

For Each <элемент> In <группа>

<инструкции>

[Exit For]

[<инструкции>]

Next [<номер>]

Пример 1:

For Each myObject in myCollection

If Abs(myObject.Value) < 0.01 Then myObject.Value = 0

Next

Пример 2:

Sub forEach2()

Dim TestArray(10) As Integer

Dim I As Variant

For I = 1 To 10

TestArray(I) = I * 2

Next

For Each I In TestArray

If I = 6 Then

Exit For

End If

Next I

Debug.Print I & " " & TestArray(I)

End Sub

Программирование итерационных циклов

Бесконечный цикл. Оператор DoLoop

Синтаксис конструкции:

Do

<инструкции>

[Exit Do]

[<инструкции>]

Loop

Оператор Do WhileLoop

Синтаксис инструкции:

Do while <условие>

<инструкции>

[Exit Do]

[<инструкции>]

Loop

Пример:

Sub dotest()

Dim i As Integer

Dim itest As Integer

i = 1

itest = 1

Do While i = 1

Debug.Print "Номер " & itest

If itest = 5 Then

i = 0

End If

itest = itest + 1

Loop

End Sub

Оператор Do … Loop While

Синтаксис инструкции:

Do

<инструкции>

[Exit Do]

[<инструкции>]

Loop while <условие>

Sub ChkFirstWhile()

Dim counter As Integer

Dim myNum As Integer

counter = 0

myNum = 20

Do While myNum > 10

myNum = myNum - 1

counter = counter + 1

Loop

MsgBox "В цикле " & counter & "итераций."

End Sub

Sub ChkLastWhile()

Dim counter As Integer

Dim myNum As Integer

counter = 0

myNum = 9

Do

myNum = myNum - 1

counter = counter + 1

Loop While myNum > 10

MsgBox "В цикле " & counter & "итераций."

End Sub