For:Next
For <variable> = <expression1> To <expression2> [Step <constant>] ... Next [<variable>]
Описание
Оператор For: Next используется для создания в программе цикла с заданными параметрами. На каждой итерации цикла значение переменной <variable> увеличивается на 1 (или "значение Шага" указанное в <constant>, если используется ключевое слово Step), и когда значение <variable> станет больше значения <expression2>, цикл прекращается.
Команда Break, даёт возможность выйти из цикла For: Next в любой момент, а команда Continue позволяет пропустить остаток текущей итерации.
Цикл For: Next для выражений и константы для Step может использовать только целочисленные значения. Константа для Step также может быть отрицательной.
Примечание: Учтите, что в цикле For: Next значение выражения <expression2> и значение переменной <variable>, можно изменить внутри цикла For: Next, что при неправильном использовании может привести к бесконечным повторам.
Также это означает, что вычисление выражения <expression2> происходит в каждой итерации, поэтому старайтесь не включать множество медленных команд в это выражение, так как это скажется на производительности. Например, For k = 0 To a+b/c/d будет работать очень медленно.
Пример
For k = 0 To 10 Debug k Next
В этом примере программа повторит цикл 11 раз (от 0 до 10), затем выйдет.
Пример
For k = 10 To 1 Step -1 Debug k Next
В этом примере программа повторит цикл 10 раз (от 10 обратно до 1), затем выйдет.
Пример
a = 2 b = 3 For k = a+2 To b+7 Step 2 Debug k Next k
Здесь программа повторит цикл 4 раза прежде чем выйти, (k увеличивается на 2 на каждой итерации, так что значение k будет: 4-6-8-10). Идентификатор "k" после "Next" показывает, что "Next" заканчивает цикл "For k". Если использовать другой идентификатор, компилятор сообщит об ошибке. Это может быть полезно для организации нескольких вложенных циклов "For/Next".
Пример
For x=0 To 10 For y=0 To 5 Debug "x: " + x + " y: " + y Next y Next x
Пример: Бесконечный цикл из-за непродуманных действий с переменной 'x'.
For x=1 To 10 x=x-1 Debug "x: " + x Next x