ПОНЯТНО О Visual Basic NET (том 2)

Синтаксис и работа оператора For


Синтаксис оператора For:

For  переменная цикла  =  выражение1   To выражение2   [ Step  выражение3

]

               операторы

               операторы

               ……………..

Next   [ переменная цикла ]

Переменная цикла должна иметь числовой тип. Обычно назначают Integer. Допустимы также нечисловые типы, для которых имеют смысл операции сложения и сравнения. В качестве примера приведу перечисления (см. 13.3).

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

Вместо чисел в операторе For  можно писать переменные и выражения. Пример записи:

For   I =  s   To   2*s+1   Step   k*10

Если шаг не указан, он считается равным 1, то есть переменная на каждой итерации увеличивается на 1. Если же мы хотим уменьшать ее на 1, нам придется явно указать    Step  -1.

                      

Работа оператора For

при положительном (или нулевом) шаге:

Прежде всего вычисляется выражение1, и переменной цикла  (пусть это будет i)  присваивается его значение. Затем вычисляется выражение2 и сравнивается с i. Если i> выражения2, то оператор For завершает свою работу, так ничего и не сделав. В противном случае выполняются операторы, стоящие между строками For и Next. После их выполнения значение i увеличивается на значение выражения3 (или при его отсутствии на 1) и снова сравнивается с выражением2. Если i > выражения2, то оператор For завершает свою работу, иначе снова выполняются операторы, снова i увеличивается и т.д.

при отрицательном шаге:

Прежде всего вычисляется выражение1, и переменной цикла  (пусть это будет i)  присваивается его значение. Затем вычисляется выражение2 и сравнивается с i. Если i < выражения2, то оператор For завершает свою работу, так ничего и не сделав. В противном случае выполняются операторы, стоящие между строками For и Next. После их выполнения значение i уменьшается на значение модуля выражения3 и снова сравнивается с выражением2. Если i < выражения2, то оператор For завершает свою работу, иначе снова выполняются операторы, снова i уменьшается и т.д.

Примечание: В VB 2003 в отличие от VB вы можете объявлять переменную цикла не заранее (оператором Dim), а непосредственно в заголовке цикла:

For  переменная цикла  As  тип   =  выражение1   To …….

В этом случае областью видимости переменной цикла является блок оператора  For  (см. 11.3.4).



Содержание раздела