Мегаобучалка Главная | О нас | Обратная связь


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



2015-11-11 648 Обсуждений (0)
Оператор присваивания меняет значения переменных величин 0.00 из 5.00 0 оценок




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

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  
Debug.WriteLine(k)
k=25  
Debug.WriteLine(k)
k=4  
Debug.WriteLine(k)

 

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

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 t / = 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)

Имена переменных. Ключевые слова VB

Как правильно давать имена элементам VB, мы уже говорили. Повторю:

Имяможет состоять из букв, цифр и знаков подчеркивания, причем не должно начинаться с цифры. И не должно состоять из одних подчеркиваний.

Правда, в VB имя определяется несколько более широко, но то правило, которое я дал, можно считать хорошим советом.

В школе переменные величины мы привыкли обозначать буквами (a, s, d ... ). Большинство языков программирования, в том числе и VB, позволяет обозначать переменные именами из многих букв. Вот два равносильных фрагмента программы:

a=3; Summa=3;
b=4+a; ШУРА=4+Summa;
Debug.WriteLine(a, b) Debug.WriteLine(Summa, ШУРА)

В том и другом случае будут напечатаны числа 3 и 7. Очевидно, компьютеру все равно, какими именами мы обозначаем переменные величины или другие элементы, в смысл имен он не вдумывается и не удивляется, что переменная Summa никакой суммой не является, а просто числом 3.

Примеры правильной записи имен:

a

S25

Oshibka

Polnaja_Summmma

_1

__________tri_plus_dva__a1b88qqQQQQQQQQQQQQ

_Это_не_имя_Уж_поверьте

Примеры неправильной записи имен:

polnaja summa содержится символ (пробел), не являющийся буквой, цифрой или знаком подчеркивания
начинается с цифры
8as начинается с цифры
Domby&Son содержится символ & , не являющийся буквой, цифрой или знаком подчеркивания
Это верное имя Да да да содержится символ (пробел), не являющийся буквой, цифрой или знаком подчеркивания

VB игнорирует в именах разницу между строчными и прописными буквами. Так, для него Summa и sUmmA – одно и то же имя. Но он присматривает за тем, чтобы в окне кода данное конкретное имя было написано всегда одинаково, а именно так, как объявлено (правда, я не уверен, что он так присматривает за всеми русскими буквами, во всяком случае Visual Basic 6.0 не всегда присматривал).

Ключевые слова. Ключевые слова (Keywords) – это служебные слова VB, которые он широко использует в тексте программы. Мы уже знакомы с некоторыми из них: Dim, Integer, Double, Sub и др. В нижеприведенной таблице перечислены все ключевые слова VB.

AddHandler AddressOf Alias And
AndAlso Ansi As Assembly
Auto Boolean ByRef Byte
ByVal Call Case Catch
CBool CByte CChar CDate
CDec CDbl Char CInt
Class CLng CObj Const
CShort CSng CStr CType
Date Decimal Declare Default
Delegate Dim DirectCast Do
Double Each Else ElseIf
End Enum Erase Error
Event Exit #ExternalSource False
Finally For Friend Function
Get GetType GoTo Handles
If Implements Imports In
Inherits Integer Interface Is
Let Lib Like Long
Loop Me Mod Module
MustInherit MustOverride MyBase MyClass
Namespace New Next Not
Nothing NotInheritable NotOverridable Object
On Option Optional Or
OrElse Overloads Overridable Overrides
ParamArray Preserve Private Property
Protected Public RaiseEvent ReadOnly
ReDim #Region REM RemoveHandler
Resume Return Select Set
Shadows Shared Short Single
Static Step Stop String
Structure Sub SyncLock Then
Throw To True Try
TypeOf Unicode Until Variant
When While With WithEvents
WriteOnly Xor #Const #ExternalSource
#If...Then...#Else #Region - &
&= * *= /
/= \ \= ^
^= + += =
-=      

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

Dim [Sub] As Integer

[Sub] = 99

Я также не рекомендую использовать на первых порах в качестве имен для создаваемых вами переменных имена популярных объектов, их свойств, методов и др. Например, если вы назовете переменную именем Button1, BackColor или WriteLine, то VB, может, и не спутается, но спутаетесь вы.

Называем по-русски. Взгляните в текст любой программы. Он состоит в основном из ключевых слов на английском (на латинице) и имен. Причем и тех и других так много, что глаза разбегаются и непонятно, где ключевое слово, а где имя. А если это имя – то создано ли оно программистом или взято из библиотеки классов .NET Framework – сразу не поймешь. Нам, русскоязычным, здесь удобнее: мы можем имена давать на русском (на кириллице). Разница между английскими и русскими буквами сразу бросается в глаза и разбирать текст программы становится не в пример легче: все, что мы создали сами, названо по-русски, а все, что досталось от VB – по-английски. Я так и делаю.



2015-11-11 648 Обсуждений (0)
Оператор присваивания меняет значения переменных величин 0.00 из 5.00 0 оценок









Обсуждение в статье: Оператор присваивания меняет значения переменных величин

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (648)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)