logo search
Информатика_ЗФ / 2013_Информатика УМО_легпром

Оператор циклаFor … next

Оператор цикла FOR … NEXTиспользуется, когда число повторений заранее известно, и определяется оно значениями счётчика (параметра) цикла: начальным, конечным и шагом (приращением). Оператор имеет следующий синтаксис:

FORпеременная_цикла=началоTOконец[STEPприращение]

[блок_операторов]

[EXIT FOR]

NEXT[переменная_цикла[,переменная_цикла]...]

Здесь переменная_цикла– числовая переменная, используемая как счетчик или параметр цикла;началоиконец– выражения, задающие начальное и границу конечного значения переменной цикла;приращение– значение, прибавляемое к переменной цикла при каждом следующем шаге цикла. Если необязательная часть оператора (STEPприращение) не указывается, то приращение принимается равным единице.Количество повторенийтела циклаFOR … NEXTопределяется целым (без округления!) числом, определяемым формулой (конец – начало) / приращение+ 1.

Тело цикла может содержать любую последовательность вложенных алгоритмических структур, имеющих один вход и один выход, в том числе и вложенные циклы. Синтаксис оператора предусматривает также досрочныйвыход из цикла (EXIT FOR)*.

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

Рассмотрим работу оператора FOR … NEXTна примере следующего фрагмента программы:

For I = Старт To Стоп

lsbРезультат.AddItem I

Next I

Щелчок по кнопке позволяет вызвать форму (рис. 5), на которой можно указать начальное (Старт) и конечное (Стоп) значения счётчика и увидеть соответствующий результат выполнения программы.

Программный код примера 5 на алгоритмическом языке VBA

Private SubcmbStart_Click()

Dim I As Integer

Dim Старт As Integer

Dim Стоп As Integer

Старт = txtIstart.Value

Стоп = txtIstop.Value

For I = Старт To Стоп

lsbРезультат.AddItem I

NextI

lblВывод.Caption="*Значение счётчика по завершении цикла ="& I

End Sub

Так, при Старт=1иСтоп=5тело цикла выполнится пять раз, при этом переменная I(счётчик) будет изменять своё значение от одного до пяти включительно с шагом, равным единице (посколькуSTEPне указан). Тело цикла состоит всего из одной строки, предписывающей объектуlsbРезультат(элемент управления, отображающий список) выполнить методAddItem(добавить элемент в список), причём в качестве добавляемой строки выступаеттекущеезначение счётчикаI, которое на каждом шаге меняется. В результате можно получить вид, представленный на рисунке 11.8.

Рис. 11.49. Форма (Пример 5) с результатом работы цикла.

Для более глубокого понимания работы оператора FOR … NEXTрекомендуется повторить выполнение предложенного примера с другими значениямиСтартиСтоп. Ещё лучше выполнить предложенную программу впошаговомрежиме (запуск из меню редактораVBA:DebugStep Into), в котором очередной выполняемый оператор подсвечивается, ожидая команды продолжения (нажатияF8), а зависание указателя мыши на имени переменной позволяет отобразить её текущее значение.

Оператор FOR … NEXTчасто используется при обработке массивов. Например, для одномерного массива можно организовать цикл, используяСчётчик, изменяющийся от значения нижней границы индекса массиваСтартдо верхнейСтоп. Такой цикл выполнится столько же раз, сколько в массиве имеется элементов. Если в теле цикла при обращении к элементу массива использовать в качестве указателя индекса идентификаторСчётчик, то таким образом можно осуществлять поэлементный перебор всего массива [21, 22].