Лекция № 25. 9.11.3. Блочный синтаксис оператора If Then
9.11.3. Блочный синтаксис оператора If … Then
Эта форма применяется, когда необходимо выполнить несколько операторов или выполнить более сложный выбор в процедурах, выбирая между двумя, тремя или более ветвями. При этом исполняемые операторы записываются в несколько строк – блок. Блок должен заканчиваться оператором End If (конец блока If).
If логическое_выражение_1 Then
[блок_операторов_1]
[ElseIf логическое_выражение_2 Then
[блок_операторов_2]
…
[ElseIf логическое_выражение_N-1 Then
[блок_операторов_N-1
[Else
[блок_операторов_N] ]
End If
– логическое_выражение – выражение, возвращающее не нулевое значение (истина) или ноль (ложь);
– блок _ операторов – любое количество операторов.
При блочной форме проверяется сначала первое логическое выражение. Если оно ненулевое ("истина"), выполняются операторы блока, следующего за словом Then (блок_операторов_1). Если логическое выражение равно нулю ("ложь"), происходит переход к оценке условия, заданного в последующей строке ElseIf. При выполнении этого условия выполняются операторы данного блока (блок_операторов_2) и т.д. Если ни одно из условий ElseIf не выполняется (все "ложь"), то выполняются операторы блока Else (блок_операторов_N). Блоки Else и ElseIf могут быть опущены (тогда оператор If примет вид минимальной блочной формы). В блочную структуру If можно вставить любое количество условий ElseIf. Каждый из блоков может также содержать другую структуру с оператором If (так образуются вложенные блочные структуры If). Обратите внимание, слово ElseIf пишется слитно, а в слове End If, наоборот, ставится пробел. Слова If, ElseIf, Else и End If должны быть единственными в строке (другими словами, первый выполняемый оператор в каждом блоке должен начинаться со следующей новой строки). Последний блок операторов должен заканчиваться строкой End If.
Любую программу можно составить с использованием только самой простой формы оператора If – краткой линейной формы. Все остальные формы используются только для удобства записи программы. Как было уже сказано, если проверяются одно или два условия, то имеет смысл использовать более простую линейную форму If…Then или If...Then…Else.
Блочная форма оператора If … Then имеет несколько форм записи – они отличаются друг от друга наличием необязательных параметров (на приведенной выше общей форме записи они стоят в квадратных скобках). Минимальная блочная форма имеет вид:
If логическое_выражение Then
Оператор_1
Оператор_2
……………………………
Оператор_N
End If
Здесь Оператор_1, Оператор_2 и т.д. до N – последовательность операторов (блок), выполняющихся при выполнении логического_выражения. Количество операторов в блоке не ограничивается (главное, чтобы блок заканчивался ключевым словом End If). Действие оператора If поясняется блок-схемой, приведенной на рис. 9.3.
Рис. 9.3. Минимальная блочная форма оператора If…Then
Максимальная блочная форма применяется, когда необходимо анализировать не одно или два условия, а целый ряд взаимосвязанных условий:
If логическое_выражение_1 Then
[блок_операторов_1]
ElseIf логическое_выражение_2 Then
[блок_операторов_2]
……………………………………………………………………………………
ElseIf логическое_выражение_N–1 Then
[блок_операторов_N–1]
Else
[блок_операторов_N]
End If
Действие оператора If поясняется блок-схемой, приведенной на рис. 9.4.
Рис. 9.4. Максимальная блочная форма оператора If…Then
Пример 9.Определение количества знаков в числе от 0 до 1000.
Sub blochnaya_forma_If()
DimxAs Single
DimyAs Integer
m1: x = InputBox("Введите целое положительное число в интервале от 0 до 1000", "Запрос задачи")
If x < 0 Or x > 100 Or x <> Int(x) Then
'повтор ввода, если ввели не отвечающее требованиям число
MsgBox "Вы ввели не верное число", , "Повторите ввод"
GoTo m1:
ElseIf x < 10 Then
y = 1
ElseIf x < 100 Then
y = 2
ElseIf x < 1000 Then
y = 3
Else
y = 4
End If
MsgBox "Число " & x & " имеет " & y & " знак(а)", , "Решение задачи"
Дата добавления: 2015-08-14; просмотров: 1111;