Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskoe posobie dlya VBA for Excel.303.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
990.72 Кб
Скачать

Операторы условного перехода If - Then и If-Then-Else

Условный оператор If-Then-else обеспечивает передачу управления в программе в зависимости от выполнения условия.

Синтаксис:

If <условие> Then <блок_операторов_1>

Else <блок_операторов_2>

End If

В условном операторе допустимо использование как блока операторов, так и любого из операторов. В операторе условия Опреатор_1 или Блок_операторов_1 выполняется если <условие> истинно, в противном случае выполняется Оператор_2 или Блок_операторов_2.

Условие - это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения, указанные в таблице 1.

Таблица 1. Логическое отношение.

Операция

Название

Выражение

Результат

=

равно

А = В

True, если А равно В

<>

не равно

A<>B

True, если А не равно В

>

больше

A>B

True, если А больше В

<

меньше

A<B

True, если А меньше В

>=

больше или равно

A>=B

True, если А больше или равно В

<=

меньше или равно

A<=B

True, если А меньше или равно В

Сложные условия образуются из простых путем применения логических операций и круглых скобок. Список логических операций приведен в таблице 2.

Ветвь Else в условном операторе является необязательной. Таким образом, возможен следующий синтаксис оператора условия:

If <условие> Then <оператор или блок_операторов>

End If

Заметим, что в операторе условия после Then можно разместить блок операторов, для того, чтобы все они выполнялись, если условие истинно. В этом случае они должны располагаться в одну строчку и быть разделены двоеточием. Например,

If A>10 Then A=A+1 : B =B+A : C=C+B

End If

Рассмотрим пример функции пользователя с использованием оператора условного перехода If-Then-Else.

Function G(y)

If y<=0 Then G = (1+y^2)/(1+y^4)^(1/2)_

Else G = 2*y +sin (y)^2/(2+y)

End If

End Function

вычисляющей следующую функцию с двумя условиями:

Заметим, что знак подчеркивания «_» в конце строки обозначает, что следующая строка является продолжением предыдущей.

Пусть в ячейку А1 записано число 0,2 и вам нужно вычислить в ячейке В1 значение функции G при У=0,2. Для этого достаточно в ячейку В1 ввести формулу = G(А1). Тот же результат можно получить, если ввести в ячейку В1 следующую формулу

= если (А<=0*; (1+А1^2)/(1+A1^4)^(1/2); 2*A1+sin(A1)^2/(2+a1))

В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид:

If <условие_1> Then <Блок_операторов_1>

Else If <условие_2> Then <блок_операторов_2>

Else If <условие_3> Then ...

else <блок_операторов>

End If

В данном условном операторе выполняется блок_операторов_i, если истинно условие_i, в противном случае выполняется блок_операторов.