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

         

Объясняю For на примерах


Задача 1:   200 раз напечатать слово ФУТБОЛ.

Очевидно, нам нужно написать циклическую программу, где цикл выполнялся бы 200 раз. Попробуем сначала решить задачу при помощи оператора GoTo. Для выхода из цикла оператор GoTo нужно включить в состав оператора If. Кроме этого нужна переменная, меняющая свое значение от одного выполнения цикла к следующему. Удобнее всего, если эта переменная будет менять свое значение на 1, начиная с 0 или 1. Напомним, что переменная, организованная таким образом, является счетчиком циклов (См. 8.1.3).   Придумаем этой величине какое-нибудь имя, скажем i. Задачу решает такой причудливый фрагмент:

        i = 1

m1:  If i > 200 Then GoTo m2

        Debug.Write("ФУТБОЛ   ")

        i = i + 1

       GoTo m1

m2:

Здесь i  вначале равно 1, но к каждому следующему выполнению цикла оно увеличивается на 1. В первый раз выполняя оператор If, компьютер проверяет условие 1>200 и найдя его ложным, выполняет следующий оператор – Debug.Write("ФУТБОЛ  "). Во второй раз проверяется условие 2>200 ит.д. В 200-й раз компьютер проверяет условие 200>200 и найдя его ложным, в 200-й раз выполняет оператор Debug.Write("ФУТБОЛ  "). В 201-й раз компьютер проверяет условие 201>200 и найдя его истинным, выходит из цикла, перейдя к метке m2. Все. ФУТБОЛ напечатан ровно 200 раз.

В нашем примере «полезную» работу выполняет только одна строка из пяти – Debug.Write("ФУТБОЛ  "). Остальные строки заняты тем, что обеспечивают выполнение «полезной» строки ровно 200 раз. Чтобы избежать такого перекоса в сторону «обслуживающего персонала» и для вящей краткости, придумали оператор For  и вместо верхних 2 строк:

        i = 1

m1:  If i > 200 Then GoTo m2

стали писать 1 строку:



        For i = 1 To 200

а вместо нижних 2 строк:

        i = i + 1

       GoTo m1

тоже стали писать 1 строку:

        Next i

смысл программы оставляя тем же самым.

Получилось вот что:

        For i = 1 To 200

            Debug.Write("ФУТБОЛ  ")


        Next i
Как видите, гораздо короче.
Слово For переводится «Для». Слово To переводится «до». Конструкция For i=1 To 200  понимается так: Для i, изменяющегося от 1 до
200, выполняй операторы, стоящие ниже вплоть до слова Next.
Слово Next говорит о том, что надо увеличивать i на 1 и возвращаться к началу цикла. При первом выполнении цикла i будет равно 1, при втором – 2, и так далее. При последнем – 200. Переменная i называется переменной цикла.
Задача 2.   В предыдущем конкретном случае сами по себе значения i не были важны, нужный результат мы бы получили и с оператором
For   i = 501   To   700
А вот где значения переменной цикла будут важны: Распечатать пары чисел –   101  1010           102  1020         103  1030     …….    110  1100
 Вот программа:
        For a = 101 To 110
            b = 10 * a
            Debug.WriteLine(a & "   " & b)
        Next a

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