Лекция №6 Операторы. Линейные, разветвленные и циклические операторы



АннотацияВетвление - это управляющая операция языка программирования, позволяющая изменить порядок выполнения алгоритма программы.

Для реализации ветвлений в программах на VBA используются следующие операторы:

· условный оператор If;

· оператор выбора Select Case;

· оператор безусловного перехода Goto.

Ключевые словаусловный оператор If;оператор выбора Select Case;оператор безусловного перехода Goto.

Ветвление - это управляющая операция языка программирования, позволяющая изменить порядок выполнения алгоритма программы.

Для реализации ветвлений в программах на VBA используются следующие операторы:

· условный оператор If;

· оператор выбора Select Case;

· оператор безусловного перехода Goto.

Условный оператор If

Условный оператор – это структура, которая выбирает ту или иную ветвь кода процедуры на основе некоторого предопределенного условия или группы условий. Общий синтакис условного оператора:

 If <условие1> Then

          <Блок операторов1>

 [ElseIf <условие2> Then

          <Блок операторов2>

[ElseIf <условиеN> Then

          <Блок операторовN>]

[Else

          <Блокоператоров_Else>]]

 End If

где:

<условиеN> - проверяемое условное выражение;

<Блок операторовN>; - операторы, выполняемые при истинности условия;

<Блок операторов_Else> - операторы, выполняемые по умолчанию.

Блоки ElseIf и Else - необязательны.

Помимо приведенной полной формы, поддерживается синтаксис краткой однострочной формы условного оператора следующего вида:

If <условие> Then <оператор>

Примеры использования условного оператора приведены в листингах 3 и 4.

Листинг 3. Полная форма условного оператора

Sub sample4()

Dim value As Long

 ConstMSG = "Выввеличисло, "

value = InputBox(prompt:="Введитечисло", Title:="Пример 4")

 

If value = 0 Then

           MsgBox (MSG & "равное 0")

 ElseIf value > 0 Then

           MsgBox (MSG & "большее 0")

 Else

           MsgBox (MSG & "меньшее 0")

 End If

End Sub

Листинг 4. Краткая форма условного оператора

Sub sample5()

Dim value As Long

Const MSG = "Вы ввели число, "

value = InputBox(prompt:="Введите число", Title:="Пример 4")

If value = 0 Then MsgBox (MSG & "равное 0")

If value > 0 Then MsgBox (MSG & "большее 0")

If value < 0 Then MsgBox (MSG & "меньшее 0")

End Sub

Логические выражения могут быть построены с помощью логических функций Not, And, Or, Xor, Imp, Eqv (листинг 5).

Листинг 5. Составные логические выражения

'Программа запрашивает имя пользователя и пароль,

'проверяет введенную информацию и выводит сообщение.

Sub sample5()

          Const UNAME = "User"

          Const PASSWD = "TopSecret"

          login = InputBox(prompt:="Логин")

          pass = InputBox(prompt:="Пароль")

              

          If (login = UNAME) And (pass = PASSWD) Then

                          MsgBox ("Добро пожаловать!")

          Else

                          MsgBox ("Вы не авторизованы!")

          End If

End Sub

Операторвыбора Select Case

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

Формат оператора Select Case:

Select Case <проверяемоеВыражение>

          Case <списокЗначений1><блокОператоров1>

          [Case <списокЗначений2><блокОператоров2>]

          [. . .]

          [Case Else <блокОператоров_Else>]

End Select

Проверяемое выражение вычисляется в начале работы оператора Select Case. СписокЗначений – это одно или несколько выражений, разделенных запятой. При выполнении оператора проверяется, соответствует ли хотя бы один из элементов этого списка проверяемому выражению. Эти элементы списка значений могут иметь одну из трех форм:

1. <выражение> - в этом случае проверяется, совпадает ли значение проверяемогоВыражения с этим выражением.

2. <выражение1> To <выражение2> - проверяется, находится ли значение проверяемогоВыражения в указанном диапазоне значений.

3. Is <логическаяОперация><выражение> - проверяемое выражение сравнивается с указанным значением с помощью заданной логической операции (или операции отношения).

Отыскивается только первый подходящий элемент списков выражений.

Пример использования оператора Select Case приведен в листинге 6.

Листинг 6. Оператор выбора

'Процедура выводит на экран окно сообщения,

'содержащее командные кнопки Yes, No и Cancel; затем определяет

'выбранную пользователем кнопку и выводит сообщение,

'поясняющее этот выбор.

Sub sample7()

          Const mTitle = "Демонстрация кнопок MsgBox"

          Dim Resp As Integer

          Resp = MsgBox(prompt:="Выберитекнопку", Title:=mTitle, _ Buttons:=vbYesNoCancel + vbQuestion)

          Select Case Resp

          Case Is = vbYes MsgBox prompt:="Вывыбраликнопку 'Да'", Title:=mTitle, _ Buttons:=vbInformation

          Case Is = vbNo MsgBox prompt:="Вывыбраликнопку 'Нет'", Title:=mTitle, _ Buttons:=vbInformation

          Case Is = vbCancel MsgBox prompt:="Вывыбраликнопку 'Отмена'", Title:=mTitle, _ Buttons:=vbCritical

          End Select

End Sub

Оператор безусловного перехода GoTo

Оператор безусловного перехода GoTo всегда изменяет порядок выполнения операторов в процедуре или функции VBA без проверки каких-либо условий. Синтаксис оператора GoTo:

GoTo <метка>

где:

<Метка> – это любая допустимая метка в той же процедуре или функции, которая содержит оператор GoTo.

Листинг 7. Использование GoTo

'Программа будет запрашивать ввод значения пока не будет введено четное число

Sub sample6()

          getValue: ' метка

          value = InputBox(prompt:="Введите четное число")

          If (value Mod 2 <> 0) Then GoTo getValue

End Sub

Для иллюстрации решения задачи из листинга 7 приведем один из альтернативных способов, с помощью оператора цикла (листинг 8).

Листинг 8. Отказ от использования GoTo.

Sub sample7()

          Do

                          value = InputBox(prompt:="Введитечетноечисло")

          Loop While value Mod 2 <> 0

EndSub

Организация циклов

Операторы цикла используются для повторения выполнения действия или группы действий заданное количество раз. Количество повторений (итераций цикла) может быть предопределено или вычислено.

VBA поддерживает циклические конструкции двух видов:

1. Циклы с фиксированным числом повторений (циклы со счетчиком).

2. Циклы с неопределенными числом повторений (циклы с условием).

Для всех видов циклов используется понятие тело цикла, определяющее блок операторов, заключенных между начальным и конечным операторами цикла. Каждое повторение выполнения операторов тела цикла называется итерация.

Фиксированные циклы

VBA предоставляет две управляющие структуры для организации фиксированного цикла: For … Next (цикл со счетчиком) и For Each … Next (цикл с перечислением).

Оператор For … Next это типовой цикл со счетчиком, выполняющий заданное число итераций. Синтаксис оператора For … Next:

For <счетчик> = <начЗначение> То <конЗначение> [Step <приращение>]           <блок операторов>Next [<счетчик>]

Пример использования оператора For ... Next.

Листинг 9. Оператор For … Next

' ЗАДАЧА: Составить программу, которая получает два числа от пользователя. ' Складывает все числа в диапазоне, заданном этими двумя числами, а затем ' отображает результирующую сумму. Sub sample7()           DimiAsInteger ‘счетчикцикла          Dim sStart ‘начальное значение счетчика           Dim sEnd ‘конечное значение счетчика           Dim sSum As Long ‘результирующая сумма           sStart = InputBox("Введите первое число:")           sEnd = InputBox("Введите второе число:")           sSum = 0                     For i = CInt(sStart) To CInt(sEnd)                           sSum = sSum + i           Next i                     MsgBox "Суммачиселот "& sStart & " до " & sEnd & " равна: " & sSum End Sub

Операторцикла For Each … Next относится к категории операторов объектного типа, т.е. применяется в первую очередь к коллекциям объектов, а также к массивам. Тело цикла выполняется фиксированное число раз, соответствующее числу элементов массива или коллекции. Формат оператора For Each … Next:


Дата добавления: 2018-04-04; просмотров: 697; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!