|
Программирование >> Проектирование интерфейса пользователя
Кто следит за порядком на дороге В своих рассуждениях об управляющих структурах программы будем следовать метафоре постового-регулировщика - автору книги она по душе (нет, отдельные сотрудники автоинспекции мне как раз не симпатичны, но абстрактная модель, представляющая личность, которая следит за происходящим в программе, - совсем другое дело). Одна из самых употребительных конструкций языка 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.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |