Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GLAVA_3_Osnovy_yazyka.doc
Скачиваний:
41
Добавлен:
29.02.2016
Размер:
179.71 Кб
Скачать

Операция присваивания

Операция присваивания (=) относится к бинарным операциям и имеет следующий вид:

левый_операнд = правый_операнд

В качестве левого операнда операции (=) могут использоваться только переменные. Выражения x + 1 = 3 или 3 = x – недопустимы. Правым операндом операции могут быть выражения.

В результате выполнения операции (=) значение правого операнда присваивается левому операнду, например: x = y + 1. Результатом выполнения операции является присвоенное значение, поэтому возможно множественное присваивание:

x = y = z = a + 1

переменные z, y, x примут значение a + 1, если все они одного типа.

Если тип правого операнда не совпадает с типом левого операнда, то выполняется преобразование типа правого операнда к типу левого операнда. Поэтому результат вычисления выражения imax = 4.0 + 3.5, где imax типа int, будет равен 7 вместо ожидаемого значения 7.5, так как компилятор преобразует число 7.5 в целое, отбрасывая дробную часть.

Следует отметить, что часто переменная, являющаяся левым операндом операции присваивания, может использоваться в выражении, находящемся в правой части, например:

a = a / 3 или b = b * 2

Вычисление значений этих выражений приводит к двукратному определению адресов переменных a и b – для нахождения исходных значений и для занесения полученных результатов. Эту избыточность можно ликвидировать, записав

a/=3, b*=2

Операции присваивания вида +=, -=, *=, /=, %= называются составными операциями присваивания.

Операции сравнения (отношения)

В языке С++ применяются следующие операции сравнения:

== – (равно); > – (больше); < – (меньше); >= – (больше или равно); <= – (меньше или равно); != – (не равно).

В качестве операндов операций сравнения могут быть использованы выражения, значения которых перед выполнением операции вычисляются и их результаты сравниваются с помощью операций сравнения. Результатом операций сравнения является значение true (истина), если сравнение выполняется, и false (ложь) – если не выполняется. При этом следует отметить, что в С++ любое ненулевое значение соответствует истине, а нулевое значение – лжи. Например, результат сравнения x == 1 будет true, если значение переменной x равно единице, иначе – false.

Логические операции

Иногда условные выражения требуют одновременной проверки нескольких условий. Например, выражение 0 < x < 5 содержит сразу два условия 0 < x и x < 5. В программировании для записи таких выражений используются логические операции. В языке С++ к логическим операциям относятся:

&& – логическое И;

|| – логическое ИЛИ;

! – логическое НЕ (отрицание).

С использованием логических операций выражение 0 < x < 5 в языке С++ следует записать как (x > 0) && (x < 5).

Операции (&&) и (||) являются бинарными и поэтому при их применении надо указывать два операнда, а операция (!) – унарная операция, т.е. нужен всего один операнд.

Результат выполнения логических операций зависит от значений операндов, с которыми они используются. Так, операция (&&) возвращает значение true, когда истинны (не равны нулю) оба его операнда. Операция (||) возвращает значение false только в том случае, если ложны (равны нулю) оба её операнда. Операция (!) просто инвертирует значение своего операнда с false на true и наоборот. Так, значением выражения (x > 0) && (x < 5) будет true только в том случае, если значение переменной x будет больше 0, но меньше 5.

Таблица свойств логических операций

v1

v2

!v2

v1 && v2

v1 || v2

false

false

true

false

false

false

true

false

false

true

true

false

false

true

true

true

true

true

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]