Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операторы альтернативы (ветвления)

Поиск

 

Как и в любом другом языке программирования, в VBA можно проверять условия и выполнять действия в соответствии с результатами проверки условий. Для данной цели применяются следующие операторы (инструкции) принятия решения.

9.4.3.4.1. Условный оператор

IF < условие > THEN < оператор (код) >

Позволяет выполнить один или несколько операторов, если условие истинно. Можно использовать однострочный или блочный вариант. Если необходимо выполнить более одной строки кода, нужно использовать блочный вариант с оператором End IF.

Синтаксис:

IF < условие > Then < оператор (код) >

IF < условие > Then

< блок кода >

End IF

Примеры:

IF x<10 Then z = 0

IF x>10 Then

z = 2

z = z + x

End IF

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

Пример:

IF x<>0 Then

y = Sin(x)/x

Else

y =1

End IF

В блоке IF допускается любое количество предложений ElseIF, но ни одно не может находиться после предложения Else.

Пример ветвления по двум и более направлениям:

IF < условие 1 > Then

< блок кода 1 >

ElseIF < условие 2 > Then

< блок кода 2 >

ElseIF < условие 3 > Then

< блок кода 3 >

Else < блок кода 4

End IF

Пример:

IF x = -1.57 Then

y = -1

ElseIF x = 0 Then

y = 0

ElseIF x = 1.57 Then

y =1

Else y = Sin(x)

End IF

9.4.3.4.2. Оператор выбора варианта

 

При выборе для выполнения одного из нескольких операторов (блоков операторов) целесообразно и удобно использовать инструкцию Select Case.

Синтаксис:

Select Case < переменная или выражение >

Case < значение 1 >

< оператор (блок операторов) 1 >

Case < значение 2 >

< оператор (блок операторов) 2 >

Case < значение 3 >

< оператор (блок операторов) 3 >

End Select

Пример применения оператора выбора в подпрограмме-функции:

Function PR(ByVal S As Single, ByVal P As Integer) As Single

Select Case P

Case 0

PR = S*0

Case 1

PR = S*0.10

Case 2

PR = S*0.20

End Select

End Function

Sub Krb() ‘Пример программы, показывающий вызов

подпрограммы-функции.

Dim S As Single

Dim Sum As Single

Dim P As Integer

Dim Prom As Variant

S = 5000

Do

Prom = InputBox(“Введите номер варианта <от 0 до 5>”)

IF Not IsNumeric(Prom) Then MsgBox(“Повторите ввод!”)

Loop Until IsNumeric(Prom)

P = Prom

Sum = PR(S,P) ‘Вызов процедуры-функции. Оператор вызова PR(S,P).

MsgBox(“Значение S = ”) & CSng(S)

End Sub

Допускается вложенность инструкций Select Case. При этом каждой вложенной инструкции Select Case должна соответствовать инструкция End Select.

Вопросы для самоконтроля

1. В чем отличие между строчным и блочным вариантами оператора ветвления?

2. Можно ли вставлять инструкцию Else перед инструкцией ElseIF в блочном варианте оператора ветвления?

3. Сколько инструкций ElseIF может быть в блочном варианте оператора ветвления?

4. В чем преимущество оператора выбора варианта перед многовариантным оператором ветвления?

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

Циклы с предусловием

DO WHILE < условие > LOOP

Оператор DO WHILE < условие> … LOOP позволяет проверить условие перед началом цикла и выполнять цикл до тех пор, пока оно имеет значение True. Как только условие цикла примет значение False, выполнение цикла прекратится.

Пример:

Dim X As Integer ‘Описание переменной X целого типа.

X = 0 ‘Начальное значение переменной X.

DO WHILE X<=10 ‘ Пока Х<=10, цикл будет повторяться.

X = X + 1 ‘Изменение значения переменной Х.

LOOP ‘Конец цикла.

Другой вариант инструкции такого цикла:

WHILE <условие>… WEND

Пример:

X = 0

WHILE X<12

y = Cos(x)

X = X + 1

WEND

DO UNTIL < условие > … LOOP

Оператор Do Until <условие> … Loop позволяет проверить условие перед началом цикла и выполнять цикл до тех пор, пока оно False. Как только условие цикла станет равно True, выполнение цикла прекратится.

Пример:

Dim X As Integer ‘Описание переменной X целого типа

X = 0 ‘Начальное значение переменной X

Do Until X>10 ‘ До тех пор, пока Х<=10, цикл повторяется

X = X + 1 ‘Изменение значения переменной Х

Loop ‘Конец цикла.

Циклы с постусловием

DO … LOOP WHILE < условие >

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

Инструкция Do … Loop While <условие> позволяет проверить условие после выполнения операторов тела цикла.

Цикл будет повторяться до тех пор, пока выражение в условии цикла имеет значение True. Как только условие цикла примет значение False, выполнение цикла прекратится.

Пример:

Dim X As Integer

X = 0

Do

X = X + 1

Loop While X<=10 ‘До тех пор, пока Х<=10, цикл повторяется

DO … LOOP UNTIL < условие >

В отличие от предыдущего этот цикл будет выполняться до тех пор, пока значение условия равно False.

Пример:

Dim X As Integer

X = 0

Do

X = X + 1

Loop Until X>10 ‘Как только переменная станет больше десяти, выполнение цикла прекратится.



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 648; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.41.80 (0.007 с.)