- •Лекция 6. Управление потоком (продолжение). Условные переходы. Циклы.Оператор With. Немедленный выход с помощью оператора Exit For Оператор Goto Примеры работы с двоичной логикой
- •Операторы условного перехода:
- •If…Then, If…ElseIf, Select Case Оператор условного перехода If…Then
- •Пример использования условного перехода If…Then
- •Оператор условного перехода If…ElseIf
- •Оператор Select Case
- •Операторы циклов:
- •Повторение под управлением цикла For…Next
- •Пример вложенных циклов For…Next
- •Важные замечания по поводу циклов For…Next
- •Использование оператора цикла For Each… Next
- •Циклы Do…Loop
- •Типы оператора цикла Do…Loop
- •Пример оператора Do While (условие) Loop
- •Использование оператора Do …Until Loop (условие)
- •Использование оператора With
- •Использование оператора Is
- •Немедленный выход с помощью оператора Exit For
- •Управление потоком с помощью оператора Go To
Оператор Select Case
Оператор If…ElseIf хорошо подходит для принятия решений на основе последовательной проверки уменьшающегося количества значений по различным условиям. Если же приходится проверять одно и то же значение в сравнении с различными условиями, то наиболее эффективным, простым в записи и удобочитаемым является оператор Select Case (Case – ящик). Его синтаксис:
Select Case значение
Case критерий1
(операторы, выполняемые, когда значение удовлетворяет критерию 1)
Case критерий2
(операторы, выполняемые, когда значение удовлетворяет критерию 2)
' дополнительные операторы Case
Case Else
(операторы, выполняемые, когда значение не удовлетворяет ни одному из приведенных критериев)
End Select
Если значение свойства не будет удовлетворять ни одному из критериев в операторах Case, то управление перейдет к оператору Case Else, который всегда находится в самом конце структуры Select Case.
Пример оператора условного перехода Select Case:
Select Case objFilm.Type
Case "Слайдовая"
Слайдовая = Слайдовая +1
Case "Цветная негативная"
ЦветнаяНегативная = ЦветнаяНегативная + 1
Case "ЧБ негативная"
ЧБНегативная = ЧБНегативная + 1
Case Else
MsgBox "Неизвестный тип пленки"
End Select
Числовой пример условного перехода с оператором Select Case
Составляется таблица:
-
Объем продаж, тыс. руб.
Комиссионные, %
0 - 9999
8
10000 – 39999
10
40000 и более
14
Задачу начисления премии решается просто с помощью оператора Select Case:
Option Explicit
Function Премия(Продажа As Single) As Single
Select Case Продажа
Case 0 To 9999
Премия = 0.08 * Продажа
Case 10000 To 39999
Премия = 0.1 * Продажа
Case Is > 40000
Премия = 0.14 * Продажа
End Select
End Function
Sub Main()
Dim Сумма As Single
Сумма = Премия(30000) 'присвоение путем вызова возвращенного значения процедуры Function
MsgBox (CStr(Сумма))
End Sub
Операторы циклов:
- For…Next - заданное число раз;
- For Each…Next - для каждого объекта из семейства объектов;
- Do…Loop - до тех пор, пока некоторое условие имеет значение True.
Циклы могут быть вложенными: один – внутри другого.
При работе с вложенными циклами существует простое правило: внутренний цикл должен закончиться раньше, чем начнется внешний.
Повторение под управлением цикла For…Next
Если перед выполнением цикла известно, сколько раз он должен выполняться, то используйте цикл For…Next. Число проходов цикла задается значениями начало и конец, которые могут быть целыми числами, переменными и даже сложными выражениями.
В процессе выполнения переменная счетчик хранит информацию о числе выполненных проходов цикла. Синтаксис:
For имя счетчика = начало To конец
(операторы, выполняющиеся при каждом проходе цикла)
Next имя счетчика
Sub СчётДоДесяти( )
Dim j As Integer
For j = 1 To 10
Debug.Print "Дубль № " & j
Next j
End Sub