Программирование >>  Проектирование интерфейса пользователя 

1 ... 19 20 21 [ 22 ] 23 24 25 ... 153


Кто следит за порядком на дороге

В своих рассуждениях об управляющих структурах программы будем следовать метафоре постового-регулировщика - автору книги она по душе (нет, отдельные сотрудники автоинспекции мне как раз не симпатичны, но абстрактная модель, представляющая личность, которая следит за происходящим в программе, - совсем другое дело).

Одна из самых употребительных конструкций языка Access VBA - это выражение If ... Then ... End If.: If

(условие) Then

одна или несколько

End If

строк кода

Ный термин

Далее употребляется термин выражение. Оператор If является выражением, поскольку выступает стандартной формой кода, выполняемого по условию.

С помощью комментария Одна или несколько строк кода мы обозначили место - между первой строкой конструкции, содержащей служебные слова If, Then, и

последней. End if, - в котором можно расположить любое число строк кода. Услов-ноеВыражение - самая главная часть управляющей структуры, которая содержит любое выражение, возвращающее результат типа Boolean. В условном выражении могут использоваться операторы сравнения и логические операторы (о них речь шла на прошлом занятии), а также результаты вызова функций, возвращающих булевы значения. (Подробнее о функциях см. главу 8-й час. Декомпозиция задач .)

Сущность выражения состоит в том, что последующие строки кода (до строки End If) выполняются только в том случае, когда результат вычисления условного выражения, заключенного в скобки, равен True. Листинг 5.1 содержит несколько полезных примеров использования конструкции If, которые вам следует внимательно изучить. (Приведенный код можно проверить, набрав и откомпилировав его в окне редактора Microsoft Visual Basic, либо исполнить непосредственно с помощью средств окна Immediate.)

Листин1. Примеры использования конструкции ... Then

4 : 5;

7 : 8: 9: 10: 11: 12: 13 : 14: 15: 16: 17 : 18: 19: 20:

Sub IfTest( )

Const PROMPT = Введите значение дохода:

Const TITLE = Подоходный налог Const HIGH TAX RATE = Поздравляем, с вас возьмут больше!

Di ЫеХпсоте As Double

Taxablelncome putBox( PROMPT, TITLE, 40000 ))

If (Taxablelncome > 40000) Then MsgBox HIGH TAX RATE

End If

Const PROMPT 1 = Введите имя пользователя:

Const TITLE 1 = Имя пользователя

Const WELCOME ADMIN USER = Адаинистратор, добро пожаловать! Di Name As String UserName = est

UserName = InputBox ( PROMPT 1, TITLE 1, UserName)

If (UserName = Admin ) Then

End If



22: 23:

MsgBox WELCOME ADMIN USER End If ~ ~

End Sub


Напомним: вы сможете протестировать код листинга 5.1, если введете чекст процедуры в окне редактора Microsoft Visual Basic и воспользуетесь

.клавишей <

для последовательного исполнения по строкам.

Первое, что нельзя не отметить, взглянув жимое листинга 5 1 - екст выглядит как полноценная, довольно сложная программа В стро-сах 1 и 23 находятся операторы, определяющие начало и конец процеду-I/iM xfTest. g строках 2, 3 и 4 объявляются и инициализируются именованные символьные константы; первая из них (PROMPT), например, полу** - значение Введите значение дохода: . В строке 6 объявлена переменная Taxable Income типа Double. Тип Double соответствует Ч11слам плавающей запятой. В строке 8 используются Две функции причем J,Qд выполняется справа налево, т.е. первой вызывается вложенная стандартная функция inputBox. (В данный момент воспринимайте формат обращения к функции InputBox таким, каким он есть; если же %м не терпится вникнуть в подробности, обратитесь за помощью к оперативной справочной системе Access.) При вызове функции InputBox открывается диалоговое окно, показанное на рис. 5.1.

[lifUUSik* tarn- - Sr-

:: J4


Рис. 5.1. Вызов стандартной функции InputBox тедет ытию соответствующего диалогового окна



Функции tBox возвращает строку символов, введенных пользователем в поле редактирования (оно расположено в нижней части диалогового окна - см. рис. 5.1). Внешняя функция выражения в строке 8 листинга (Val) выполняется после завершения работы функции InputBox. (Если необходимо уточнить детали, обратитесь к справочной системе

Access.) Val осуществляет преобразование строки символов, возвращенной функцией In-putBox, в число двойной точности. Поскольку результат работы InputBox - это строка, а

в объявлении переменной Taxablelncome указан тип Double, Val - это как раз тот инструмент, который нам нужен. В строках с 10-й по 12-ю содержится выражение в котором полученная числовая величина дохода сопоставляется с константой-границей, и в случае превышения последней на экран выводится окно сообщения.

В строках 14-16 объявляется новый набор именованных констант, две из которых

будут использованы в качестве аргументов в вызове функции InputBox, содержащейся в строке 19, а третья - далее. В строках 17 и 18 объявляется и инициализируется символьная переменная UserName. Строки 20-22 содержат выражение If - в нем значение переменной UserName, которое редактируется пользователем в диалоговом

окне, вызванном функцией InputBox (см. строку 19), сопоставляется с литеральной константой Admin . В случае совпадения открывается окно сообщения.

Итак, с помощью конструкции I f допускается анализировать и числовые величины, и строки. Помните, что при использовании конструкции I f программа должна реагировать как на положительный результат сравнения True, так и на отрицательный False.

Расширение выражения If с помощью Else

Служебное слово Else используется с целью разбить выражение If на два блока

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

о If (условное выражение) Then

одна или несколько строк кода, выполняемых при значе-lijl нии True условного выражения оо Else

▼ одна или несколько строк кода, выполняемых при значении False условного выражения A End If

Обратите внимание: служебное слово занимает отдельную строку и разделяет

выражение I f на две половины. В каждой из них может содержаться любое количество строк кода. Запомните: строки, расположенные над словом Else, выполняются,

если Условное Выражение равно True, а нижний блок выражений - в случае False.

Слово Else использовать необязательно - обращайтесь к нему в тех случаях, когда необходимо отреагировать на оба возможных результата вычисления условного выражения.

Вложенные условные конструкции

Выражение допускается размещать внутри другого выражения If, как над служебным словом Else, так и под ним. Подобные условные конструкции называют вложенными. Несмотря на то, Что с формальной точки зрения такие трюки вполне правомерны и на первый взгляд кажутся оправданными, эффективными и даже забавными, на практике применять их не рекомендуется. Листинг 5.2 содержит пример условной конструкции, построенной на основе нескольких вложенных выражений If.



1 ... 19 20 21 [ 22 ] 23 24 25 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика