Оператор присваивания

Казалось бы, что может быть проще оператора присваивания? Есть некоторая переменная, ей нужно присвоить некоторое значение, равное константе, другой переменной, или оно является результатом некоторого вычисления.

Оператор присваивания обозначается одиночным знаком равенства (=).
В C# оператор присваивания действует таким же образом, как и в других языках программирования. Ниже приведена его общая форма:
имя_переменной = выражение;
Здесь имя_переменной должно быть совместимо с типом выражения.

Однако вам полезно знать еще кое-что про этот оператор, чтобы понимать код, написанный другими программистами.

У простого  оператора присваивания имеется одна интересная особенность, о которой вам будет полезно знать: он позволяет создавать цепочку операций присваивания.
Рассмотрим следующий фрагмент кода:
int x, у, z;
  x = у = z = 10; // присвоить значение 10 переменным x, у и z
В приведенном выше фрагменте кода одно и то же значение 10 задается для переменных х, у и z с помощью единственного оператора присваивания. Это значение присваивается сначала переменной z, затем переменной у и, наконец, переменной х. Такой способ присваивания «по цепочке» удобен для задания общего значения целой группе переменных.

Составные операторы присваивания

В C# предусмотрены специальные составные операторы присваивания, упрощающие программирование некоторых операций присваивания. Обратимся сначала к простому примеру:
x = x + 1;

Его можно переписать следующим образом:
x += 1;
Пара операторов += указывает компилятору на то, что переменной х должно быть присвоено ее первоначальное значение, увеличенное на единицу.

Для многих двоичных операций, то есть операций, требующих наличия двух операндов, существуют отдельные составные операторы присваивания.

Общая форма всех этих операторов имеет следующий вид:
имя переменной op = выражение;
где op — арифметический или логический оператор, применяемый вместе с оператором присваивания.

Ниже перечислены составные операторы присваивания для арифметических и логических операций:

+= : присваивание после сложения. Присваивает левому операнду сумму левого и правого операндов, выражение A += B равнозначно выражению A = A + B ;

-= : присваивание после вычитания. Присваивает левому операнду разность левого и правого операндов, A -= B эквивалентно A = A — B ;

*= : присваивание после умножения. Присваивает левому операнду произведение левого и правого операндов, A*=B эквивалентно A=A*B ;

/= : присваивание после деления. Присваивает левому операнду частное левого и правого операндов, A /= B эквивалентно A = A / B ;

%= : присваивание после деления по модулю. Присваивает левому операнду остаток от целочисленного деления левого операнда на правый, A %= B эквивалентно A = A % B ;

&= : присваивание после поразрядной конъюнкции. Присваивает левому операнду результат поразрядной конъюнкции его битового представления с битовым представлением правого операнда, A &= B эквивалентно A = A & B ;

|= : присваивание после поразрядной дизъюнкции. Присваивает левому операнду результат поразрядной дизъюнкции его битового представления с битовым представлением правого операнда, A |= B эквивалентно A = A | B ;

^= : присваивание после операции исключающего ИЛИ. Присваивает левому операнду результат операции исключающего ИЛИ его битового представления с битовым представлением правого операнда, A=A^B ;

<<= : присваивание после сдвига разрядов влево. Присваивает левому операнду результат сдвига его битового представления влево на определенное количество разрядов, равное значению правого операнда, A <<= B эквивалентно A = A << B ;

>>= : присваивание после сдвига разрядов вправо. Присваивает левому операнду результат сдвига его битового представления вправо на определенное количество разрядов, равное значению правого операнда,  A >>= B эквивалентно A = A >> B .

Составные операторы присваивания записываются более кратко, чем их не составные эквиваленты. Поэтому их иногда еще называют укороченными операторами присваивания.
У составных операторов присваивания имеются два главных преимущества. Во-первых, они более компактны, чем их «не сокращенные» эквиваленты. И во-вторых, они дают более эффективный исполняемый код, поскольку левый операнд этих операторов вычисляется только один раз.

Именно по этим причинам составные операторы присваивания чаще всего применяются в программах, профессионально написанных на C#.
Далее познакомимся с понятием «Поразрядные операторы


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x