Иллюстрированный самоучитель по VB.NET

       

Цикл с определенным условием


Цикл, выполняемый заданное количество раз, определяется при помощи ключевых слов For и Next. Например, следующая программа выводит в консольном окне числа от 1 до 10:

Sub Main()

Dim i As Integer

For i = 1 To 10

Console.WriteLine(i)

Next 1

Console.ReadLine()

End Sub

Обычно переменной-счетчику присваивается начальное значение, после чего проверяется, не превышает ли текущее значение счетчика конечное. Если счетчик превысил конечное значение, тело цикла не выполняется. Если текущее значение меньше конечного, VB .NET выполняет последующие команды до тех пор, пока не встретит ключевое слово Next (указывать имя переменной в команде Next необязательно). По умолчанию счетчик увеличивается на 1, и все начинается заново. Процесс продолжается до тех пор, пока при очередной проверке не окажется, что счетчик превысил конечное значение. В этот момент цикл завершается, и управление передается следующей за ним команде.

Хотя в качестве счетчика может использоваться числовая переменная любого типа, ре-комендуется использовать переменные типа Integer. В этом случае VB .NET тратит минимальное количество времени на изменение счетчика, что ускоряет выполнение цикла.

Единичное приращение счетчика, используемое по умолчанию, иногда неудобно—в некоторых ситуациях счетчик должен изменяться на 2, на дробную величину или в обратном направлении. Как и во всех прежних версиях VB, нестандартное приращение указывается в цикле For-Next с ключевым словом Step.

Следующая программа имитирует обратный отсчет перед запуском космического корабля:

Sub Main()



Dim i As Integer

For i = 10 To 1 Step =1

Console.WriteLine("It's t minus " & i & " and counting.")

Next i

Console.WriteLine("Blastoff!")

Console. ReadLine()

End Sub

При отрицательном приращении тело цикла For-Next игнорируется в том случае, если начальное значение счетчика меньше конечного. Это очень удобно при выполнении таких операций, как удаление элементов из списка. Если бы отсчет велся от 0 до ListCount, то на середине произошло бы обращение к удаленному элементу, тогда как при отсчете от ListCount до 0 с шагом -1 элементы нормально удаляются от последнего к первому.



Значение Step может относиться к любому числовому типу. Пример:

for yearlylnterest = .07 То .09 Step .00125D

Цикл перебирает значения от 7 до 9 процентов с приращением в 1/ 8 процента. Обратите внимание на использование типа Decimal для предотвращения ошибок округления.

VB .NET, как и прежние версии VB, позволяет создавать вложенные циклы практически неограниченной глубины. Следующий фрагмент выводит таблицу умножения с простейшим форматированием:

Sub Main()

Dim i, j As Integer

For j = 2 To 12

For i = 2 To 12

Console.Writed * j & " ")

Next i

Console. WriteLine()

Next j

Console ReadLine()

End Sub

Во внутреннем цикле вместо метода WriteLine используется метод Write, чтобы избежать перевода строки при выводе соседних элементов.




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