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

Примеры


Все нижеприведенные примеры прогоните в обычном и в пошаговом режиме.

Пример 1. Определите без компьютера, что напечатает фрагмент:

        Dim a = 100

        GoTo 8

        a = a + 40

        Dim k = 7

        Debug.Write(a)

8:     a = a + 2

        k = k + 10

        Debug.Write(a)

Этот фрагмент напечатает   102.  Операторы выполняются в такой последовательности:

        Dim a = 100

        GoTo 8



        a = a + 2

        k = k + 10

        Debug.Write(a)

А операторы

        a = a + 40

        Dim k = 7

        Debug.Write(a)

выполнены не будут вообще, несмотря на то, что написаны. Цикла здесь нет.

Пример 2. Печатать числа  0, 1, 2, 3 . . . и так без конца.

Вот программа:

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim n As Long = 0

m1:  Debug.Write(n & "  ")

        n = n + 1

        GoTo m1

    End Sub

Здесь в оператор Debug.Write(n & "  ")  вставлена печать пробела, чтобы как-то отделить друг от друга числа в одной строке.

Обратите внимание, что когда компьютер, скажем, в 24-й раз выполняет тело цикла, значение n как раз равно 24. Значит, зная в любой момент значение n, мы можем сказать, в какой раз выполняется тело цикла (еще говорят: какая итерация цикла выполняется). Переменная, обладающая таким свойством, называется счетчиком циклов.

Пример 3. Выводить числа  0, 1, 2, 3 . . . , но не на печать, а в элемент управления Label (что весьма приятно наблюдать).

Вот программа:

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        Dim n As Long = 0

m1:  Label1.Text = n

        Label1.Refresh()

        n = n + 1

        GoTo m1

End Sub

Здесь новостью для нас является оператор Label1.Refresh(), который можно перевести так – «перерисовать, обновить, освежить Label1». Без него вы не увидели бы в Label1 никаких новых чисел, информация в ней просто не обновлялась бы. Метод Refresh подходит в некоторых случаях и к другим элементам управления.


Пример 4. Печатать числа  200, 205, 210, 215 . . . и так без конца.
Вот программа:
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim n As Long = 200
m1:  Debug.Write(n & "  ")
        n = n + 5
        GoTo m1
    End Sub
Задание 23.   
Определить без компьютера, что будет печатать программа:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim n As Integer = 10
        Dim k As Integer = 0
        Debug.WriteLine("Считаем зайцев")
met5: Debug.Write(n)
        n = n + k
        GoTo m1
        n = n + 1
m1:  Debug.WriteLine("  зайцев")
        k = k + 1
        GoTo met5
        Debug.Write("Посчитали зайцев")
End Sub
Если не можете определить – посмотрите в пошаговом режиме.

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