ВНИМАНИЕ! Конкурс по программированию!
Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.
- Просмотров: 1675
- Автор: КазКиберГетик
Урок № 11. Выражения
Категория: Программирование » Basic / Visual Basic » Уроки Visual Basic
Итак, с переменными мы разобрались. Теперь займёмся выражениями.
Выражения
Для начала разберёмся с понятием "выражение". В любом языке программирования выражения являются основными кирпичиками, из которых строится программа. Согласно самому точному определению, которое мне попадалось, "выражение" - это "что-то, что содержит значение". За примером далеко ходить не нужно, возьмём пример из предыдущего урока:
b = 234
Здесь мы присваиваем переменной b значение 234. Другими словами "234" - это выражение со значением 234. А теперь, к примеру рассмотрим строчку:
c = b
Здесь переменной c присваивается выражение b. Значение этого выражения -
b = 234. Т.е. другими словами b - выражение, со значением 234. Рассмотрим более сложный пример выражения - функцию. Объявим функцию MyFunc, возвращающую байт 234:
Public Function MyFunc() As Byte
 MyFunc = 234
End Function
А теперь запишем строку:
c = MyFunc()
Как вы уже наверное догадались, выражение здесь - MyFunc(), со значением 234. Т.е. после присвоения переменной c выражения MyFunc(), она будет содержать значение 234. А вот ещё пример:
c = 5 + 5 * 2
Здесь выражение это 5 + 5 * 2. Значение этого выражения не трудно посчитать, оно равно 15 (не 20!). Можно было бы написать и так:
c = MyFunc() - 219
Здесь значение выражение такое же, как и в предыдущем случае, но вот сами выражения разные. Это важно понимать.
Также необходимо отметить значение скобок в выражениях. Помните скобки в школе? Так вот в Visual Basic скобки выполняют ту же функцию, что и в школе, а именно - задают приоритет операции. К примеру, модифицируем выражение 5 + 5 * 2 на:
c = (5 + 5) * 2
Теперь значение этого выражения не 15, а 20! Запомните это.
Идём дальше. Рассмотрим другие, очень распространённые выражения - выражения сравнения. Такие выражения возвращают True или False, в зависимости от получившегося значения выражения. К таким выражениям относятся:
Dim bRes As Boolean ' переменная для хранения результата
Dim a As Long
Dim b As Byte
Dim c As Long
a = 234 ' переменные для теста
b = 5
c = 1000
bRes = c > b ' 1
bRes = c < b ' 2
bRes = a >= c ' 3
bRes = b <= 4 ' 4
bRes = b <= 5 ' 5
bRes = a <> b ' 6
bRes = Not (a = b) ' 7
bRes = c = MyFunc() ' 8
' и им подобные...
Итак, рассмотрим каждый случай подробно:
- Здесь, переменной типа Boolean - bRes присваивается значение выражения (c > b). Т.е. Visual Basic сравнивает эти переменные, и смотрит, c > b? Если да, то значение этого выражения сравнения - True. Если же нет, то False.
- То же самое, только bRes будет содержать значение False, т.к. c больше b, а не меньше, как указано в выражении.
- Здесь происходит сравнение значений переменных a и c. Т.е. a больше или равно c? В нашем случае a = 234, c = 1000, значит не больше и не равно (меньше). bRes будет содержать False.
- b сравнивается с числом 4. Вспомните, ведь 4 - это тоже выражение, со значением 4! Т.к. b > 4, то bRes = False.
- Здесь также происходит сравнение переменной b с числом, 5. Но на этот раз одно из условий выполнени, а именно b = 5! Значит bRes = True.
- Очевидно, что b <> a. Стало быть bRes должно быть равно True!? Да, так оно и есть... ;)
- Обратите внимание на этот пример. После выполнения этой строчки, bRes будет равно True! Здесь выражение Not (a = b) вычисляется следующим образом: сначала Visual Basic сравнивает значения a и b. После того, как VB убедится в том, что a <> b (т.е. False), он вычисляет выражение:
Not (False). Оператор Not - это булев оператор отрицания. Он инвертирует значение. В данном случае из False получается True. (на более низком уровнем, могу добавить, что оператор Not инвертирует все биты операнда, в данном случае, т.к. False в VB - это 0, а True - FFFF, то значение выражения - True). - Здесь ничего особенно не происходит. bRes = False. Почему? Пусть это будет вашим домашним заданием :).
Ну и последний пример, который иллюстрирует применение выражений сравнения. Сделаем так, чтобы переменной a присвоилось значение 234, если
c = b, и 100, если c <> b:
If c = b Then a = 234
If c <> b Then a = 100
А можно так:
If c = b Then
 a = 234
End If
If c <> b Then
 a = 100
End If
Оба этих варинта абсолютно эквивалентны, но теряется наглядность. Лучше использовать следующий вариант:
If c = b Then
 a = 234 ' строчка #1
Else
 a = 100 ' строчка #2
End If
Здесь конструкция If выполнит строчку #1 тогда и только тогда, когда c будет равно b. Если же они не будут равны, то выполниться строчка #2. Подробнее всё это мы рассмотрим далее.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.




