Visual Basic для новичков. Шаг за шагом. Самоучитель / справочник - страница 23




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


L2:

Good_Place:

ThisIsLabel800:



Несмотря на кажущуюся простоту, использование безусловных переходов крайне затрудняет понимание логики работы программы и увеличивает число ошибок. С другой стороны, алгоритмически доказано, что в любой программе можно обойтись без GoTo, применяя вместо этого инструкции If…Then… Else и Do… Loop.

Поэтому применение инструкции GoTo крайне не рекомендуется. Она поддерживается Visual Basic только для совместимости с предыдущими диалектами языка Basic.

5.5 Цикл For…Next

Цикл For…Next повторяет группу операторов программы нужное количество раз. Синтаксис данного цикла следующий:


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

[инструкции]

[Exit For]

[инструкции]

Next [счетчик]


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

По умолчанию при каждой итерации цикла переменная счетчика увеличивается на единицу, но с помощью ключевого слова Step (Шаг) это можно изменить. Переход на новую итерацию цикла осуществляется с помощью инструкции Next.



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

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

Например, следующий цикл подает звуковой сигнал 5 раз:


For i = 1 To 5

Beep

Next i


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

Кстати, указание имени счетчика после Next не обязательно и обычно используется для облегчения понимания кода программы. Инструкция Beep единственная в теле цикла. Она производит короткий гудок.

Циклы могут быть многократно вложенными. Приведем пример такого цикла, где внутри одного цикла с переменной i вложен другой цикл с переменной j:


For i = 100 To 0 Step -10

For j = 1 To 20

varY = varY * (i / j)

Next j

If i <20 Then Exit For

Next i


5.6. Цикл For Each…Next

Немного похожий своим написанием на предыдущий, цикл For Each…Next повторяет набор операторов для каждого элемента массива или всех объектов одного семейства. Вот его синтаксис:


For Each элемент In группа

[инструкции]

[Exit For]

[инструкции]

Next [элемент]


Например, чтобы поочередно вывести на экран значения всех элементов массива MyArray, нужно написать следующий цикл:


For Each ArrItem In MyArray

Print ArrItem

Next

5.7. Цикл Do… Loop

Do… Loop – цикл, который выполняется до тех пор, пока не будет выполнено некоторое условие, указанное вначале или в конце цикла.

Он имеет следующий синтаксис (вариант проверки условия в начале):


Do [{While | Until} условие]

[инструкции]

[Exit Do]

[инструкции]

Loop


Допустима также другая форма написания этого цикла (вариант проверки условия в конце) :


Do

[инструкции]

[Exit Do]

[инструкции]

Loop [{While | Until} условие]


Итерации цикла (выполнение этого участка кода программы) будут продолжаются снова и снова, до тех пор, пока не будет выполнено одно из двух условий: