|
Операции
присваивания
Простоя операция присваивания
(simple assignment operator) записывается знаком равенства =, слева от которого
стоит переменная, а справа выражение, совместимое с типом переменной:
х = 3.5, у = 2 * (х - 0.567)
/ (х + 2), b = х < у, bb = х >= у && b.
Операция присваивания действует
так: выражение, стоящее после знака равенства, вычисляется и приводится к типу
переменной, стоящей слева от знака равенства. Результатом операции будет приведенное
значение правой части.
Операция присваивания имеет еще
одно, побочное, действие: переменная, стоящая слева, получает приведенное значение
правой части, старое ее значение теряется.
В операции присваивания левая и
правая части неравноправны, нельзя написать 3.5 = х. После операции х = у изменится
переменная х, став равной у, а после у = х изменится у.
Кроме простой операции присваивания
есть еще 11
составных
операций присваивания (compound assignment operators):
+=,
-=, *=, /=, %=, &=, |=, ^=, <<=, >>=
;
>>>=.
Символы записываются без пробелов,
нельзя переставлять их местами.
Все составные операции присваивания
действуют по одной схеме:
х
ор= а э
квивалентно
х =
(тип
х), т. е. (х ор а).
Напомним, что переменная ind типа
short определена у нас со значением 1. Присваивание ind +=7.8 даст в результате
число 8, то же значение получит и переменная ind. Эта операция эквивалентна
простой операции присваивания ind = (short)(ind + 7.8).
Перед присваиванием, при необходимости,
автоматически производится приведение типа. Поэтому:
byte b = 1;
b = b + 10; //
Ошибка!
b += 10; // Правильно!
Перед сложением ь + 50 происходит
повышение ь до типа int, результат сложения тоже будет типа int и, в первом
случае, не может быть Присвоен переменной ь без явного приведения типа. Во втором
случае перед присваиванием произойдет сужение результата сложения до типа byte.
|