Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример 1




End If

Else

End If

End If

Else

Пример.

End If

Блочная форма.

Пример.

Однострочная форма.

If < условие > Then < набор команд > [Else < набор команд >]

Условие – это выражение сравнения. Обязательно присутствие знаков

=, <>, >, >=, <, <=.

Несколько выражений могут объединяться логическими командами and (и), or (или), not (не).

Набор команд после ключевого слова Then обязателен. Это команды, выполняемые при соблюдении выше заданного условия.

Набор команд после ключевого слова Else необязателен. Это команды, выполняемые при несоблюдении выше заданного условия, если такие команды нужны. После слова Else команды проверки недопустимы.

Вспомните, разве команда If не напоминает Вам функцию MS Excel

=ЕСЛИ(<усл.>; <д1>; <д2>)?

Однострочная форма допускает выполнение нескольких команд в результате проверки одного условия If...Then, но все команды должны находиться на одной строке и разделяться двоеточием.

 

A=4: B=8

If A > B Then C = A Else C = B ' В наборе единственная команда.

If C > B Then Z = A: D = B Else Z = A + B: D = A ' В наборе 2 команды.

If A > B And A > 0 Then C = A ' Сложное условие, Else отсутствует.

Блочная форма обеспечивает более структурированный подход и большую гибкость по сравнению с однострочной формой. Блочная форма обычно проще для чтения, обработки и отладки.

If <условие > Then

<набор команд>

[Else

< набор команд>]

Обратите внимание, что после ключевых слов Then и Else в той же строке команды писать нельзя! Поскольку команда If в блочной форме занимает несколько строк, ключевое слово End If служит признаком завершения команды ветвления.

 

Пусть переменным A, B, C, и D были присвоены значения в начальной части программы. Если A окажется больше B, C меньше D и все они положительные, то 1, 5, 20 и 50 элементам массива М1 следует присвоить значение 55, а если любое из указанных условий неверно, то в 1 и 50 элементы массива следует записать 33, а в 5 и 20 записать 99.

Dim M1(50) As Integer

If A > B And C < D And A > 0 And B > 0 And C > 0 And D > 0 Then

M1(1) = 55: M1(5) = 55

M1(20) = 55: M1(50) = 55

M1(1) = 33: M1(50) = 33

M1(5) = 99: M1(20) = 99

Вы прекрасно понимаете, что многообразие ситуаций реального мира нельзя уложить в рамки того, выполнилось ли некоторое единственное, пусть даже очень сложное условие или нет. Для множества условий должно быть предусмотрено и соответствующее множество решений. А как Вы в таких случаях действовали в MS Exel? Формула принимала вид:

=ЕСЛИ(<усл.1>;<д.1>;<ЕСЛИ(<усл.2>;<д2>;< д3>)).

Подобный синтаксис и у команды, реализующей сложное ветвление в VBA.

Если условий несколько и их нельзя разделить по принципу выполнились – не выполнились, а приходится проверять постепенно, применяется условие ElseIf, причем в каждую последующую проверку попадают только значения, не отсеянные предыдущими проверками.

Количество вложенных наборов ElseIf практически не ограничено.

If <условие> Then

<набор команд>

ElseIf <условие > Then

< набор команд>

[Else

< набор команд> ]

Допускаются вложенные блоки инструкций If; то есть блоки If, содержащиеся в других блоках.

 

Пример 1.

Пусть в переменной N содержится некоторое целое число, соответствующее номеру зажженного фонаря светофора (отсчет сверху вниз). В переменную Colr (слово Color – зарезервированное в VBA) следует внести соответствующий фонарю цвет.

If N = 1 Then

Colr = "Красный"

ElseIf N = 2 Then

Colr = "Желтый"

ElseIf N = 3 Then

Colr = "Зеленый"

Colr = "Не бывает!"

 

Для обращения к ячейке электронной таблицы используется функция Сells(i, j), где i - номер строки,,j – номер столбца.

 

Пример 2.

В ячейку B4 текущего листа внесено целое число A. В ячейку С4 внести значение Z исходя из условия: A = Cells(4, 2) If A < 0 Then z = A ^ 2 ElseIf A < 10 Then ' Здесь уже только положительные z = 33 ElseIf A = 10 Then z = z/2 Else z = A ^ 0.5 End If Cells(4, 3) = z
Z = Z2, если A < 0 33, если 0≤ A <10 Z/2, если A =10 √Z, если A >10
       

Обратите внимание, что во втором условии проверка на A ≥ 0 не требуется, поскольку все величины A < 0 отсеялись в первом условии.

При рассмотрении очень многих условий, конструкция ElseIf становится излишне громоздкой. Попробуйте воспользоваться командой Select Case.

Если в команде If последовательно ведется проверка различных условий, то Select Case во всей команде проверяется единственное выражение, которое может принимать различные значения.

Select Case <Выражение>
  Case <Значение 1>
    <набор команд 1>
  Case <Значение 2>
    <набор команд 1>
  Case <Значение N>
    <набор команд N>
  [Case Else]  
  <набор команд N+1>]
End Select  

 

< Выражение >, определенное после Select Case - любое числовое или строковое выражение.

Если значение <Выражения> совпадает с любым <Значением i>, где i=1, 2,...n из списка в предложениях Case, выполняются все инструкции, следующие за данным предложением Case до следующего предложения Case. Затем управление передается инструкции, следующей за End Select. Если выражение совпадает со <Значением i> из списка в нескольких предложениях Case, выполняется только первый подходящий набор инструкций.

Необязательный элемент команды Case Else применяется для выполнения набора команд, срабатывающего, если не сработал ни один из выше оговоренных выражений Case.

В каждом предложении Case указываются возможные значения для <Выражения> из Select Case, но не указывается само<Выражение>.Обратите внимание, что для <Значения i> в каждом предложении Case - допускается использование нескольких выражений или диапазонов. Допустимы следующие конструкции (одной или нескольких форм одновременно, перечисленных через запятую):

· числовое или литерное выражение;

· диапазон значений в виде <Выражение 1> to <Выражение 2>;

· is <оператор сравнения> <Выражение 3>.

Оператор сравнения – это >, < и т.п. Если ключевое слово Is не указано, оно вставляется по умолчанию.

Если продолжать аналогию с функциями MS Excel, то команда Select Case более всего похожа на функцию =ВПР(…)

 

Программа «Светофор», рассмотренная в команде If … ElseIf, примет вид:

 

Select Case A

Case 1

Colr = "Красный"

Case 2

Colr = "Желтый"

Case 3

Colr = "Зеленый"




Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 432; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.