Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Операторы альтернативы (ветвления)Содержание книги
Поиск на нашем сайте
Как и в любом другом языке программирования, в VBA можно проверять условия и выполнять действия в соответствии с результатами проверки условий. Для данной цели применяются следующие операторы (инструкции) принятия решения. 9.4.3.4.1. Условный оператор IF < условие > THEN < оператор (код) > Позволяет выполнить один или несколько операторов, если условие истинно. Можно использовать однострочный или блочный вариант. Если необходимо выполнить более одной строки кода, нужно использовать блочный вариант с оператором End IF. Синтаксис: IF < условие > Then < оператор (код) > IF < условие > Then < блок кода > End IF Примеры: IF x<10 Then z = 0 IF x>10 Then z = 2 z = z + x End IF Позволяет определить два блока операторов. Первый выполняется, когда условие истинно, а второй, когда оно ложно. Пример: IF x<>0 Then y = Sin(x)/x Else y =1 End IF В блоке IF допускается любое количество предложений ElseIF, но ни одно не может находиться после предложения Else. Пример ветвления по двум и более направлениям: IF < условие 1 > Then < блок кода 1 > ElseIF < условие 2 > Then < блок кода 2 > ElseIF < условие 3 > Then < блок кода 3 > Else < блок кода 4 End IF Пример: IF x = -1.57 Then y = -1 ElseIF x = 0 Then y = 0 ElseIF x = 1.57 Then y =1 Else y = Sin(x) End IF 9.4.3.4.2. Оператор выбора варианта
При выборе для выполнения одного из нескольких операторов (блоков операторов) целесообразно и удобно использовать инструкцию Select Case. Синтаксис: Select Case < переменная или выражение > Case < значение 1 > < оператор (блок операторов) 1 > Case < значение 2 > < оператор (блок операторов) 2 > Case < значение 3 > < оператор (блок операторов) 3 > End Select Пример применения оператора выбора в подпрограмме-функции: Function PR(ByVal S As Single, ByVal P As Integer) As Single Select Case P Case 0 PR = S*0 Case 1 PR = S*0.10 Case 2 PR = S*0.20 End Select End Function Sub Krb() ‘Пример программы, показывающий вызов подпрограммы-функции. Dim S As Single Dim Sum As Single Dim P As Integer Dim Prom As Variant S = 5000 Do Prom = InputBox(“Введите номер варианта <от 0 до 5>”) IF Not IsNumeric(Prom) Then MsgBox(“Повторите ввод!”) Loop Until IsNumeric(Prom) P = Prom Sum = PR(S,P) ‘Вызов процедуры-функции. Оператор вызова PR(S,P). MsgBox(“Значение S = ”) & CSng(S) End Sub Допускается вложенность инструкций Select Case. При этом каждой вложенной инструкции Select Case должна соответствовать инструкция End Select. Вопросы для самоконтроля 1. В чем отличие между строчным и блочным вариантами оператора ветвления? 2. Можно ли вставлять инструкцию Else перед инструкцией ElseIF в блочном варианте оператора ветвления? 3. Сколько инструкций ElseIF может быть в блочном варианте оператора ветвления? 4. В чем преимущество оператора выбора варианта перед многовариантным оператором ветвления? Операторы циклов Циклы с предусловием DO WHILE < условие > … LOOP Оператор DO WHILE < условие> … LOOP позволяет проверить условие перед началом цикла и выполнять цикл до тех пор, пока оно имеет значение True. Как только условие цикла примет значение False, выполнение цикла прекратится. Пример: Dim X As Integer ‘Описание переменной X целого типа. X = 0 ‘Начальное значение переменной X. DO WHILE X<=10 ‘ Пока Х<=10, цикл будет повторяться. X = X + 1 ‘Изменение значения переменной Х. LOOP ‘Конец цикла. Другой вариант инструкции такого цикла: WHILE <условие>… WEND Пример: X = 0 WHILE X<12 y = Cos(x) X = X + 1 WEND DO UNTIL < условие > … LOOP Оператор Do Until <условие> … Loop позволяет проверить условие перед началом цикла и выполнять цикл до тех пор, пока оно False. Как только условие цикла станет равно True, выполнение цикла прекратится. Пример: Dim X As Integer ‘Описание переменной X целого типа X = 0 ‘Начальное значение переменной X Do Until X>10 ‘ До тех пор, пока Х<=10, цикл повторяется X = X + 1 ‘Изменение значения переменной Х Loop ‘Конец цикла. Циклы с постусловием DO … LOOP WHILE < условие > Если операторы цикла необходимо выполнить хотя бы раз, то нужно применять цикл с постусловием. Инструкция Do … Loop While <условие> позволяет проверить условие после выполнения операторов тела цикла. Цикл будет повторяться до тех пор, пока выражение в условии цикла имеет значение True. Как только условие цикла примет значение False, выполнение цикла прекратится. Пример: Dim X As Integer X = 0 Do X = X + 1 Loop While X<=10 ‘До тех пор, пока Х<=10, цикл повторяется DO … LOOP UNTIL < условие > В отличие от предыдущего этот цикл будет выполняться до тех пор, пока значение условия равно False. Пример: Dim X As Integer X = 0 Do X = X + 1 Loop Until X>10 ‘Как только переменная станет больше десяти, выполнение цикла прекратится.
|
||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 648; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.41.80 (0.007 с.) |