Цикл – это оператор или группа операторов, которые программа многократно выполняет до тех пор, пока не получит команду начать выполнение чего – либо другого. В Visual Basic существуют два основных типа циклов – циклы со счетчиком (с известным числом повторений) и циклы с условием. Циклы со счетчиком используют в тех случаях, когда необходимо выполнить некоторые действия определенное число раз. Циклы с условием применяются тогда, когда некоторые действия в программе должны повторяться до тех пор, пока выполняется определенное условие или до тех пор, пока не будет выполнено определенное условие.
Циклы со счетчиком
Циклы со счетчиком (с известным числом повторений) в Visual Basic еще называют циклами For, или циклами For ... Next. Так они называются потому, что начало и конец этих циклов определяются операторами For и Next. Синтаксис цикла For. . .Next таков:
For СчетчикЦикла= НачальноеЗначение To КонечноеЗначение [Step Шаг]
Блок операторов
[Exit For]
Next [СчетчикЦикла]
где
For - ключевое слово Visual Basic, обозначающее начало цикла;
СчетчикЦикла- переменная, определенная в качестве счетчика цикла;
НачальноеЗначение - число, задающее начальное значение счетчика;
То - ключевое слово Visual Basic, разделяющее НачальноеЗначение и КонечноеЗначение - число, задающее значение счетчика, при котором цикл завершается;
Step - ключевое слово Visual Basic, используемое для задания шага цикла, необязательный аргумент;
Шаг - число, задающее шаг цикла, т.е. значение на которое увеличивается (или уменьшается) значение счетчика на каждом шаге, это число может быть отрицательным;
Exit For – оператор досрочного выхода из цикла (необязательный);
Next - ключевое слово Visual Basic, обозначающее конец цикла.
В начале цикла For ...Next определяется переменная-счетчик, а так же начальное и конечное значения этой переменной. В самом начале выполнения цикла переменная - счетчик устанавливается в начальное значение. Каждый раз, когда программа пройдя через цикл, возвращается к его началу, значение счетчика увеличивается. Если используется ключевое слово Step, то переменная- счетчик изменяется в соответствии с числом, указанным после ключевого слова Step. Например:
For I = 0 То 10 Step 2 ' Значение I будет увеличиваться на 2
Если ключевое слово Step отсутствует, то значение шага равно единице.
Каждый раз, когда значение переменной-счетчика изменяется, оно сравнивается с заданным конечным значением счетчика. Если значение счетчика превышает конечное значение, программа сразу выходит из цикла и переходит к той строке кода, которая следует за циклом.
Пример:
Option Explicit
Dim I As Integer
For I = 1 To 4
Sum =Sum + 2
Next I
Этот цикл эквивалентен написанию четырех операторов Sum =Sum + 2 в тексте программы.
Цикл For . . . Next Может быть прерван досрочно, например, при достижении какого - либо условия. Для этого в нужном месте цикла нужно поместить оператор Exit For. Например:
Option Explicit
Dim Sum As Integer
Dim j As Integer
Sum = 2
For j = 1 To 10
Sum = Sum + j
If Sum > 6 Then
Exit For ‘ Выход из цикла, если значение Sum больше 6
End If
Next j
TextBox1.Text = Sum
В этом примере цикл прерывается досрочно, когда значение переменной Sum будет больше 6. В результате выполнения этого кода в текстовом поле будет выведено вычисленное значение переменной Sum равное 8.
Циклы с условием
Главной особенностью циклов с условием является условие, которое может быть любым выражением, принимающим значение True (Истина) или False (Ложно). В Visual Basic есть два основных цикла с условием - цикл Do While … Loop и цикл Do Until … Loop. Оба они могут быть с предусловием или с постусловием.
Циклы Do While | Until имеет следующий синтаксис:
где
Do - ключевое слово;
While | Until - ключевые слова, указывающие тип цикла;
Выражение - выражение условия, принимающее значение True или False;
Loop - ключевое слово, указывающее на окончание цикла.
Цикл Do While выполняется до тех пор, пока выражение условия имеет значение True.
Пример цикла Do While, реализующего алгоритм программы, аналогичный приведенной в примере для цикла For с досрочным прерыванием:
Option Explicit
Dim Sum As Integer
Dim j As Integer
Sum = 2
Do While Sum < 7
Sum = Sum + j
j = j + 1
Loop
TextBox1.Text = Sum
В результате выполнения этого кода в текстовом поле будет выведено вычисленное значение переменной Sum равное 8.
В отличие от цикла Do While цикл Do Until выполняется до тех пор, пока выражение условия имеет значение False.
Пример цикла Do Until, реализующего алгоритм программы аналогичный приведенному выше:
Option Explicit
Dim Sum As Integer
Dim j As Integer
Sum = 2
Do Until Sum >7
Sum = Sum + j
j = j + 1
Loop
TextBox1.Text = Sum
В результате выполнения этого примера в текстовом поле будет выведено вычисленное значение переменной Sum равное 8.
Иногда бывает необходимо прервать цикл Do … Loop, если выполняется какое-либо дополнительное условие. Это может быть сделано с помощью оператора Exit Do. Например:
Option Explicit
Dim Sum As Integer
Dim j As Integer
Sum = 2
Do Until Sum > 7
Sum = Sum + j
j = j + 1
If j > 3 Then
Exit Do ‘ Досрочный выход из цикла Do … Loop
End If
Loop
TextBox1.Text = Sum
В этом примере цикл с условием досрочно прерывается, если выполняется дополнительное условие j > 3. В результате выполнения программного кода переменная Sum будет иметь значение, равное 8.
Используя цикл с условием можно организовать бесконечный цикл. Иногда это бывает необходимо, а иногда это происходит из-за ошибки пользователя. Для создания бесконечного цикла условное выражение должно быть таким, которое никогда не выполняется или выполняется всегда. Например:
Do Until 1
Операторы
Loop
Выйти из такого бесконечного цикла и прервать работу программы можно нажав комбинацию клавиш <Ctrl+Break>.