Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ТСПП_Полн_2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

3.3 Использование условных инструкций

Условные инструкции проверяют, имеет ли условие значение True, или же False, и, в зависимости от результата, указывают одну или несколько дальнейших инструкций. Обычно условие является выражением, которое использует оператор сравнения для сравнения одного значения переменной с другим.

Варианты условной инструкции:

  • If...Then...Else: ветвление программы в зависимости от значения условия True или False;

  • Select Case: выбор ветви из набора условий.

3.3.1 Инструкция If...Then...Else

Инструкция If...Then...Else выполняет определенные инструкции или наборы инструкций в зависимости от значения условия. Допускаются многократно вложенные инструкции If...Then...Else. Однако для облегчения чтения программы вместо многократно вложенных инструкций If...Then...Else иногда предпочтительнее использовать инструкцию Select Case.

Для выполнения только одной инструкции, когда условие имеет значение True, используется однострочный синтаксис инструкции If...Then...Else. Вид однострочного синтаксиса без ключевого слова Else:

If <условие> Then инструкция

Пример однострочного синтаксиса:

If sValue = "" Then Exit Sub

Для выполнения нескольких строк программы, либо когда надо выполнять одни инструкции, когда условие истинно, и другие, когда ложно, используется многострочный синтаксис. Этот синтаксис обязательно содержит инструкцию End If и может содержать Else:

If <условие> Then

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

[Else]

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

End if

Примеры многострочного синтаксиса:

If Y(i, j) > maxim Then

maxim = Y(i, j): imax = i

End If

If Svalue = 0 Then

MsgBox "Ошибка - Svalue=0"

Else

MsgBox "Посчитаем для “ & Svalue

MsgBox "Расчет куба =“ & Svalue^3

End If

Если первое условие имеет значение False, для проверки второго условия к If...Then...Else добавляется инструкция ElseIf. Например, в следующей процедуре Function вычисляется премия на основе оценки проделанной работы. Инструкция, следующая за Else, выполняется, если условия во всех инструкциях If и ElseIf имеют значения False.

Function Premiy(koef_uchast, zarplata)

If koef_uchast = 1 Then

Premiy = zarplata * 0.3

ElseIf koef_uchast = 2 Then

Premiy = zarplata * 0.2

ElseIf (koef_uchast = 3 Or koef_uchast = 4) Then

Premiy = zarplata * 0.1

ElseIf (koef_uchast >= 5 And koef_uchast <= 7) Then

Premiy = zarplata * 0.05

ElseIf koef_uchast > 9 Then

Premiy = -10

Else

Premiy = 0

End If

End Function

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

Инструкция Select Case может служить альтернативой инструкции ElseIf в If...Then...Else при оценке одного выражения, которое имеет несколько возможных значений. В то время как If...Then...Else для каждой инструкции ElseIf оценивает разные выражения, инструкция Select Case оценивает выражение только один раз, в начале управляющей структуры. Приведем пример функции Premiy, выполненной с помощью Select Case.

Function Premiy(koef_uchast, zarplata)

Select Case koef_uchast

Case 1

Premiy = zarplata * 0.3

Case 2

Premiy = zarplata * 0.2

Case 3, 4

Premiy = zarplata * 0.1

Case 5 To 7

Premiy = zarplata * 0.05

Case Is > 9

Bonus = -10

Else

Premiy = 0

End Select

End Function

3.4 Вывод отладочной информации

Для быстрого просмотра результатов вычислений в окне отладки можно использовать метод Print вместе с объектом Debug. Для этого необходимо включить окно вывода отладочной информации командой меню View\ Immediate Window либо <Ctrl>+<G>.

Синтаксис:

Debug.Print [списокПечати]

СписокПечати – необязательный аргумент. Выражение или список печатающихся выражений. Если этот аргумент опущен, выводится пустая строка. Для списокПечати используются следующие синтаксис и элементы:

{Spc(n) | Tab(n)} выражение позиция

Spc(n) – указывает количество пробелов n, вставляемых в выводящийся текст.

Tab(n) – помещает курсор в экранный столбец с номером n. Элемент Tab без аргумента помещает курсор в первый столбец следующей зоны печати.

Выражение – числовое выражение или строковое выражение, определяющее выводящийся текст.

Позиция – указывает позицию, в которой выводится следующий символ. Двоеточие (:) помещает курсор непосредственно за последним выведенным символом. Tab(n) помещает курсор в экранный столбец с номером n. Элемент Tab без аргумента помещает курсор в первый столбец следующей зоны печати. Если аргумент Позиция опущен, следующий символ выводится в начале новой строки.

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