Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная работа зо+зу.doc
Скачиваний:
66
Добавлен:
11.03.2016
Размер:
19.34 Mб
Скачать

Программирование ветвлений

Управляющие конструкции ветвления позволяют проверить некоторое условие, а затем в зависимости от результатов этой проверки выполнить ту или иную группу операторов. Для организации ветвлений в VBA используются стандартный оператор ветвления(краткого и полного) If ... Then ... Else и оператор выбора Select Case.

Оператор ветвления If ... Then ... Else имеет несколько форм представления. Краткая форма оператора ветвления If может иметь как однострочную, так и блочную форму. В одну строку краткая форма If может быть записана так:

Форма 1:

If <условие> Then <оператор> - краткая форма в одну строку.

В блочной форме краткое ветвление выглядит следующим образом:

Форма 2:

If <условие> Then

<оператор 1>

<оператор 2>

...

End If

 

В качестве условия можно использовать логическое выражение, возвращающее значение True (Истина) или False (Ложь), или любое арифметическое выражение. Если используется арифметическое выражение, то нулевое значение этого выражения эквивалентно логическому значению False, а любое ненулевое выражение эквивалентно True.

В том случае, когда <условие> принимает значение False, то операторы, составляющие тело краткого оператора ветвления (заключенные между Then и End If), выполняться не будут.

В тех случаях, когда значению условия False должно соответствовать выполнение каких-либо других действий, а не просто пропуск оператора или группы операторов, используется полная форма оператора ветвления, всегда имеющая блочную форму записи:

Форма 3:

If <условие> Then

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

Else

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

End If

Например: Вычислите значение выражения .

При вводе значений, например, x = 3, y = 3 программа работать не будет. Значит, необходимо использовать оператор ветвления:

Privat Sub Кнопка0_Click()

Dim x, y, z As Double

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

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

 

If x - y <> 0 Then

z = (x + y) / (x - y)

MsgBox ("z=" + Str(z))

Else

MsgBox ("Знаменатель равен =0")

End If

 

End Sub

Если в задачи представлены несколько условий, используется следующий синтаксис:

If <условие> Then

[блок операторов 1]

ElseIf <условие> Then

[блок операторов 2]

Else

[блок операторовN]

End If

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

Возьмем, например, такую задачу: Компьютер спрашивает студента, какую он получил отметку по информатике, и реагирует на нее подходящим текстом. Вот программа без нововведений, использующая If:

Private Sub Кнопка1_Click()

Dim Otmetka As Integer

Otmetka = InputBox("Какую отметку ты получил по информатике?")

If Otmetka = 1 Or Otmetka = 2 Then

MsgBox («Плохо!»)

ElseIf Otmetka = 3 Then

MsgBox («Так себе»)

ElseIf Otmetka = 4 Then

MsgBox («Хорошо!»)

ElseIf Otmetka = 5 Then

MsgBox («Молодец!»)

Else

MsgBox («Таких отметок не бывает!»)

End If

End Sub

Эту программу можно записать проще с использованием оператора варианта Select Case, что и означает в переводе ВЫБЕРИ ВАРИАНТ:

Private Sub Кнопка1_Click()

Dim Otmetka As Integer

Otmetka = InputBox("Какую отметку ты получил по информатике?")

Select Case Otmetka

Case 1, 2

MsgBox («Плохо!»)

Case 3

MsgBox («Так себе»)

Case 4

MsgBox («Хорошо!»)

Case 5

MsgBox («Молодец!»)

Case Else

MsgBox («Таких отметок не бывает!»)

End Select

End Sub

Синтаксис оператора:

Select Case – выражение -

Case 1 – выражение 1 –

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

Case 2 – выражение 2 –

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

----//----

Case else

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

End Select