ПОНЯТНО О Visual Basic NET

       

Оператор присваивания меняет значения переменных величин


Пока я не рассматривал программы, в которых переменные меняют свою величину. Теперь настало время такую программу рассмотреть:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim k As Integer

        k = 10

        Debug.WriteLine(k)

        k = 25

        Debug.WriteLine(k)

        k = 4

        Debug.WriteLine(k)

End Sub

В процессе работы программы содержимое ячейки k меняется.  Так, при выполнении оператора k=25 там вместо значения 10 появляется 25. А куда же девается десятка? Она стирается, то есть компьютер забывает ее безвозвратно. Здесь действует общий принцип работы всех компьютеров:

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

Раз теперь вместо 10 в ячейке k находится 25, то оператор Debug.WriteLine(k) печатает уже 25. (Слово «печатает» устарело, оно осталось от тех времен, когда мониторов еще не было, а вместо них были принтеры. Когда я по старинке говорю, что информация печатается, я подразумеваю, что она появляется на мониторе в том или ином окне.) Следующий оператор k=4   запишет на место 25 четверку, а  Debug.WriteLine(k) ее напечатает. Проверьте.



Запишем схематически процесс изменения информации в ячейке k:

ПОРЯДОК  ИСПОЛНЕНИЯ ОПЕРАТОРОВ

ЧТО НАХОДИТСЯ В ЯЧЕЙКЕ ПАМЯТИ   k

ЧТО ВИДИМ

В ОКНЕ Output

k=10      

10

Debug.WriteLine(k)

10

10

k=25      

25

Debug.WriteLine(k)

25

25

k=4

4

Debug.WriteLine(k)

4

4

А что напечатает следующая программа?

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim f As Integer

        f = 30

        Debug.WriteLine(f)

        f = f + 4

        Debug.WriteLine(f)

End Sub

Оператор   f=30  запишет в ячейку f число 30.  Затем оператор  Debug.WriteLine(f)   напечатает 34. А что сделает странный оператор f=f+4 ?  Не думайте, что это уравнение или что-нибудь в этом роде. Это оператор присваивания, а значит и выполнится он согласно определению оператора присваивания. Сначала VB вычислит правую часть  f+4 , подставив туда вместо f его значение, взятое из ячейки, и получит 34. Затем число 34 будет записано в ячейку, отведенную под переменную, обозначенную в левой части, то есть опять же в ячейку f. При этом старое значение 30 будет стерто. Оператор  Debug.WriteLine(f)   напечатает 34.


Таким образом, оператор  f=f+4

 просто увеличивает число в ячейке f   на четверку или, другими словами, увеличивает  f  на 4.

Зачем это нужно?  Узнаете позже. Очень даже нужно. Операторы такого типа встречаются настолько часто, что для них даже придумали сокращенную запись. Потренируемся:

Оператор

Сокращенная запись

Действие

a = a + 1

a += 1

Переменная увеличивается на 1

s = s - 25

s -= 25

Переменная уменьшается на 25

b = b * 2

b *= 2

Переменная увеличивается в 2 раза

t  =  t  /  3

/ =  3

Переменная уменьшается в 3 раза

Задание 8.   

Определите без компьютера, что будет напечатано при выполнении следующих фрагментов программ:

  • a=100 :  a=10*a+1 : Debug.WriteLine(a)  


  • a=100 :  a= -a : Debug.WriteLine(a)


  • a=10 :  b=25 :  a=b-a :  b=a-b : Debug.WriteLine(a) : Debug.WriteLine(b)



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