Шаг цикла
До сих пор переменная цикла менялась с шагом 1. Но оказывается шаг можно задавать любой и тогда оператор For удобно использовать вместо Do – программы получаются короче.
Пусть нужно распечатать числа 600, 605, 610, 615 . . . 900. Вот программа:
Dim a As Integer
For a = 600 To 900 Step 5
Debug.WriteLine(a)
Next a
Здесь Step 5 означает «Шаг 5».
Пусть нужно распечатать числа 3.00, 3.02, 3.04 . . . 5.00. Вот программа:
Dim a As Decimal
For a = 3 To 5 Step 0.02
Debug.WriteLine(Format(a, "0.00"))
Next a
Как видите, шаг может быть дробным. Тип переменной цикла я выбрал Decimal, если бы я выбрал Double, то при многократном прибавлении шага значение a стало бы чуть-чуть неточным.
Пусть нужно распечатать числа 5.00, 4.98, 4.96 . . . 3.00. Вот программа:
Dim a As Decimal
For a = 5 To 3 Step -0.02
Debug.WriteLine(Format(a, "0.00"))
Next a
Как видите, шаг может быть отрицательным.
Сравниваем For и Do. Таким образом, оператор For удобнее оператора Do в двух случаях: когда цикл нужно выполнить определенное количество раз и когда нам известны начальное и конечное значения переменной цикла и шаг. Однако за компактность и удобство For платит бедностью возможностей. Do гораздо более гибок, чем For.