Лабораторная работа. Основы работы в VBA. Алгоритмическая структура - цикл

2. Оператор цикла For ... Next

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

Цикл For...Next имеет следующий синтаксис:


For счетчик = Начало To Конец [Step Шаг]

      [Операторы цикла]

Next счетчик

 Счетчик – любая переменная, по которой организован цикл.

В квадратных скобках указан не обязательный параметр.

По умолчанию VBA увеличивает счетчик на 1 каждый раз при выполнении операторов в цикле (шаг по умолчанию равен 1). Если нужно другое значение шага надо включать в оператор For необязательное ключевое слово Step.

При выполнении цикла For...Next VBA поступает следующим образом:

– присваивает значение Начало счетчику;

– выполняет все операторы, представленные с помощью Операторы цикла, пока не достигнет ключевого слова Next, которое указывает VBA на то, что достигнут конец тела цикла;

– изменяет счетчик на величину Шаг (если включается необязательное ключевое слово Step); если Step не определено, то VBA увеличивает переменную на 1;

– возвращается к началу цикла и сравнивает текущее значение счетчика со значением Конец. Если значение счетчика меньше или равно Конец, VBA выполняет цикл снова. Если значение счетчика больше значения Конец, VBA продолжает выполнение кода с первого оператора после ключевого слова Next.

Если Шаг >0, то такой цикл называется циклом с возрастающим счетчиком, если Шаг <0 – цикл с убывающим счетчиком. В последнем случае Начало должно быть больше Конец.

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

         Пример. Построить  и заполнить таблицу значениями функции \( y= \frac{2,51 sin x}{ \sqrt[3]{2+3 cos x} } \) на интервале 16°≤x≤40° с шагом 4°

 

Sub Demo_ForNext()  

' Объявляем начало, конец цикла, шаг

Dim xStart, xEnd, xStep As Integer    

Dim x As Integer

Dim i As Integer

Dim xradian, y As Single

' Чтение числовых значений из рабочего листа Excel

xStart = Cells(2, 2)

xEnd = Cells(3, 2)

xStep = Cells(4, 2)

' Номер строки заголовка таблицы значений функции

i = 1                    

For x = xStart To xEnd Step xStep

' Вычисляем значение x в радианах

xradian = 3.14 * x / 180 

' Вычисляем значение функции

y = (2.51 * Sin(xradian) / (2 + 3 * Cos(xradian)) ^ (1 / 3))

i = i + 1

' Передаем полученные значения в рабочий лист

Cells(i, 4) = x

Cells(i, 5) = y

Next  x

End Sub

  

         При исполнении оператора For...Next автоматически осуществляется проверка условия продолжения цикла, изменяется значение аргумента на величину шага и осуществляется переход к строке, следующей за строкой с оператором FOR, если величина переменной цикла меньше или равна ее конечному значению.