Основы программирования на языке Visual Basic for Applications (VBA). Операторы организации циклической структуры программы

Формы элементов списка выражений

End Select

<выражение>

<выражение1> то <выражение2>

Is <логическаяОперация> <выражение>

Пример:

Public Sub DemonstrateSelectCase()

Dim x As Single

x = InputBox("Введите любое число:")

Select Case x

Case Is <0

MsgВох ("Это отрицательное число.")

Case 0 То 10

MsgBox ("Это число между 0 и 10")

Case Is > 10

MsgBox ("Вы ввели число больше 10.")

End Select

End Sub

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

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

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

<тело цикла>

[ Exit For ]

...

Next [<счётчик_цикла>]

где <счётчик_цикла> — числовая переменная;

<начало> - начальное значение (выражение) переменной <счётчик_цикла>;

<конец> - заключительное значение (выражение) переменной <счётчик_цикла>;

<тело цикла>- это последовательность операторов, которая будет выполнена заданное число раз.

Порядок выполнения: переменной <счётчик_цикла> присваивается значение <начало> и проверяется условие: <начало > £ <конец >; если условие неверно, то <тело цикла > не выполняется и управление передается на оператор, следующий за Next. Если же условие выполняется, то выполняется <тело цикла>, затем значение <счётчик_цикла > изменяется на значение <шаг > (увеличится в случае положительного значения <шаг >, и уменьшается при отрицательном значении <шаг >). Данный процесс будет выполняться пока значение <счётчик_цикла > не достигнет значения <конец > (если шаг положителен, цикл завершится, когда впервые выполнится условие:< счетчик_цикла> > <конец >. Если шаг цикла отрицателен, условие его завершения: < счетчик_цикла> < <конец >). Досрочно завершить цикл For…Next можно и с помощью оператора Exit For. Такие операторы могут быть расположены в тех местах тела цикла, где требуется из него выйти, не дожидаясь выполнения условия завершения.

Изображение в блок-схемах:

 
 

а

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

Public Sub prog3() Dim n As Byte Dim an As Integer,a1 As _ Integer, a2 As Integer n=CByte(InputBox("n =")) a1 = 1: a2 = 1 For i = 3 To n an = a1 + a2 a1 = a2: a2 = an Next i MsgBox an End Sub   Описание переменной типа Byte Ввод значения переменной n (номера элемента последовательности) через окно ввода и преобразование введенного значения к типу Byte Присваивание начальных значений переменным а1 и а2 (двоеточием разделяются операторы, записанные на одной строке) Организация цикла For…Next, в котором счетчик i изменяется от 3 до n с шагом 1 Вычисление следующего члена последовательности как сумму двух предыдущих Изменение последнего и предпоследнего значений последовательности на данный момент Увеличение счетчика на 1 (конец тела цикла)

Блок-схема программы:


Рисунок 8 - Блок-схема программы prog3

Циклы с предусловием и постусловием

Циклы данного вида используются, когда заранее не известно сколько раз будет выполняться тело цикла.

Циклы с предусловием (Do While…Loop, While…Wend, Do Until…Loop) представлены в таблице 13, а операторы циклов с постусловием (Do…Loop While, Do…Loop Until) - в таблице 14.

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

Таблица 13 – Циклы с предусловием

Синтаксис Do While < условие > < тело цикла > [Exit Do] … Loop While <условие > < тело цикла> Wend Do Unlil < условие> <тело цикла > [Exit Do] … Loop
Порядок выполнения <Тело цикла> будет выполняться в том случае, когда <условие > имеет значение истина (TRUE) (цикл продолжается при истинном значении <условия >). Если <условие > ложно (FALSE), то выполняются операторы, стоящие за циклом. В первом случае есть возможность досрочного выхода из цикла (это реализовано через Exit Do). <Тело цикла > выполняется до тех пор, пока <условие > не примет значение истина (цикл продолжается при ложном значении <условия >). Есть возможность досрочного выхода из цикла (это реализовано через Exit Do).
Изображение в блок-схемах

Таблица 14 - Циклы с постусловием

Синтаксис Do < тело цикла > [Exit Do] … Loop While <условие> Do <тело цикла> [Exit Do] … Loop Until <условие>
Порядок выполнения <Тело цикла> будет выполняться в том случае, когда <условие> имеет значение истина (цикл продолжается при истинном значении <условия >). Если < условие > ложно, то выполняются операторы, стоящие за циклом. Предоставлена возможность досрочного выхода из цикла (это реализовано через Exit Do). <Тело цикла> выполняется до тех пор, пока <условие> не примет значение истина (цикл продолжается при ложном значении <условия >). Есть возможность досрочного выхода из цикла (это реализовано через Exit Do).
Изображение в блок-схемах

Пример: организовать ввод последовательности целых чисел, пока их сумма не превысит целого числа m. Вывести количество введенных чисел.

Public Sub prog4() Dim x As Integer, m As Integer Dim s As Integer Dim i As Integer m=InputBox("Введите число m") i = 1 s =InputBox("Введите 1 число") Do While s <= m i = i + 1 x=InputBox("Введите " & i & "число") s = s + x Loop MsgBox ("Количество чисел " & i) End Sub Ввод предельного числа Номер вводимого числа последовательности Ввод первого числа последовательности Цикл с предусловием: тело цикла выполняется пока условие s<=m имеет значение Истина (TRUE) Тело цикла: увеличение номера на 1 ввод очередного (i-го) значения добавление введенного значения к предыдущему значению суммы Конец тела цикла Вывод значения переменной i

 
 

Рисунок 9 - Блок-схема программы prog4


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: