Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Синтаксис оператора Select Case



Select Case < выражение>

Case < список выражений 1>

< операторы 1>

…………..

Case < список выражений N>

< операторы N>

[Case Else

< операторы N+1> ]

End Select

 

Здесь

< выражение> - любое численное или строковое выражение,

< список выражений i> - представляют список выражений, отделенных друг от друга запятыми или (если в интервале), то in to ik,

< операторы i> - (i=1, N) – операторы, которые выполняются, если < выражение i> совпадает с любым компонентом < список выражений i>,

[Case Else

< операторы N+1> ] необязательная конструкция.

 

Работа:

· Вычисляется < выражение>

· Если значение < выражение> совпадает со значением из Case < список выражений i>, то выполняются соответствующие < операторы i> и затем управление передается на оператор следующий за оператором Select Case

· Если значение < выражение> не совпадает ни с одним из Case < список выражений i>, то при наличии конструкции Case Else выполняются < операторы N+1>. Если конструкция Case Else отсутствует, то сразу выполняется оператор, следующий за оператором Select Case

 

Пример:

Ввести номер дня недели и по его значению вывести какой это день недели: Рабочий день, Суббота или Воскресенье.

 

Public Sub Оператор_Select_Case1()

Dim n_day As Integer

Dim day As String

n_day = CInt(InputBox(" Введите номер дня недели" ))

Select Case n_day

Case 1 To 5

day = " Рабочий день"

MsgBox " Сегодня - " & day, vbOKOnly + vbInformation

Case 6

day = " Суббота"

MsgBox " Сегодня - " & day, vbOKOnly + vbInformation

Case 7

day = " Воскресенье"

MsgBox " Сегодня - " & day, vbOKOnly + vbInformation

End Select

End Sub

 

 

Public Sub Оператор_Select_Case2()

Dim n_day As Integer

Dim day As String

n_day = CInt(InputBox(" Введите номер дня недели" ))

Select Case n_day

Case 6

day = " Суббота"

MsgBox " Сегодня - " & day, vbOKOnly + vbInformation

Case 7

day = " Воскресенье"

MsgBox " Сегодня - " & day, vbOKOnly + vbInformation

Case Else

day = " Рабочий день"

MsgBox " Сегодня - " & day, vbOKOnly + vbInformation

End Select

End Sub

 

 

Операторы повтора

Для организации циклов язык VBA предоставляет несколько гибких и мощных структур – операторы повтора.

А) Оператор цикла с параметром ( For — Next)

Оператор цикла позволяет повторять группу операторов заданное число раз

Синтаксис:

For < счетчик цикла> =< начало> To < конец> [Step шаг]

< операторы>

[Exit For]

Next < счетчик цикла>

Где:

· < счетчик цикла> - любая числовая переменная, в которой сохраняется информация о количестве выполненных проходов цикла (счетчик цикла);

· Параметры < начало> и < конец> - это числовые выражения, задающие начальное и конечное значение счетчика и определяющие количество проходов цикла.

· Числовая переменная шаг задает приращение, на которое увеличивается счетчик цикла при каждом проходе. [Step шаг] необязательная фраза. При её отсутствии VBA (по умолчанию) увеличивает счетчик цикла на единицу.

· Во фразе Next < счетчик цикла> имя переменной счетчик указывать необязательно. Но при указании имени переменной улучшается читабельность программы и в случае вложенных циклов For — Next сразу видно, какому именно циклу принадлежит данное слово Next

Работа:

· Переменной < счетчик цикла> присваивается значение параметра < начало> и проверяется условие счетчик цикла < конец. Если условие неверно, то управление передается оператору, следующему за Next. Если же условие - верно, то выполняются все операторы, входящие в блок, обозначенный как < операторы>, вплоть до ключевого слова Next

· Значение переменной < счетчик цикла> увеличивается на величину, заданную во фразе [Step шаг] или на единицу, если фраза Step не указана

· Управление возвращается

· Данный процесс будет выполняться, пока значение < счетчик цикла> не достигнет значение < конец>

· Досрочно завершить цикл For — Next можно с помощью оператора Exit For, который располагается в том месте блока < операторы>, где необходимо выйти из оператора цикла For — Next не дожидаясь условия завершения цикла.

 

На блок – схеме оператор изображается следующим образом:

Пример 1

Вычислить n-ый член последовательности, заданный формулой , если

 

Public Sub Prog1()

Dim n As Byte

Dim a1 As Integer, a2 As Integer, an As Integer

n = CByte(InputBox(" введите N" ))

a1 = 1: a2 = 1

For i = 3 To n

an = a2 + a1

a1 = a2: a2 = an

Next i

MsgBox n & " -й член последовательности = " & an

End Sub

 

Пример 2

Задана последовательность хi вещественных чисел. Вычислить

 

 

Public Sub Prog2()

Dim n As Byte

Dim i As Byte

Dim xi As Double, s As Double

n = CByte(InputBox(" введите N" ))

s = 0

For i = 1 To n

xi= CDbl(InputBox(" Введите " & i & " -й элемент последовательности" ))

s = s + xi

Next i

Worksheets(1).Range(" a1" ) = " Значение суммы равно"

Worksheets(1).Cells(2, 1) = s

End Sub

 

В) Операторы повтора

Инструкция For…Next применяется в тех случаях, когда известно число повторений.

Если число повторений неизвестно, то применяются операторы повтора.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-11; Просмотров: 541; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь