Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSBasicCourse2ndedPodbelsky / CSBasicCourse2ndedPodbelsky.rtf
Скачиваний:
27
Добавлен:
22.03.2016
Размер:
11.9 Mб
Скачать

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

присваивания

Операции присваивания "операции:операции присваивания" , помещенные в

табл. 3.2, имеют более низкий ранг (меньший приоритет), нежели операции из табл

.

3.1. Еще одна особенность операций присваивания состоит в том, что они

выполняются справа – налево. У всех этих операций одинаковый ранг. Например,

для выражения x=y=z=c с помощью скобок последовательность вычисления можно

обозначить так: x=(y=(z=c)). Для сравнения отметим, что выражению x+y+z+c

эквивалентно выражение ((x+y)+z)+c.

Присваивание

"присваивание"

фундаментальное

понятие

программирования .

Средства

для

выполнения

присваивания

существуют

практически в каждом языке программирования.

Начнём с того, что в С# единичный знак = обозначает бинарную операцию (не

оператор!). Формат применения операции присваивания:

имя_переменной = выражение

Конструкция имя_переменной = выражение, представляет собой бинарное

выражение с двумя операндами. Последовательность обработки такого выражения

следующая:

Вычислить (получить) значение выражения;

Присвоить полученное значение переменной;

Вернуть в точку размещения выражения значение, присвоенное переменной.

Если конструкция имя_переменной = выражение завершается точкой с

запятой и размещена в последовательности других операторов программы, то она

превращается в оператор присваивания "оператор присваивания" . В этом случае

действие ограничивается двумя первыми пунктами: вычислить значение выражения

и присвоить полученное значение переменной, поименованной слева от знака

присваивания. Третий пункт не нужен – значение всего выражения с операцией

присваивания

игнорируется.

Однако,

иногда

удобно

использовать

цепочки

присваиваний, и в этом случае для всех выражений присваивания, размещённых

справа, их значения используются явно

.

Пример:

int a, b, c, d;

a=b=c=d=842;

После выполнения такого оператора переменные a, b, c, d принимают одно и

то же значение 842. Последовательность вычислений: вычисляется выражение

d=842, тем самым переменная d становится равной 842 и это же значение принимает

участие в следующем выражении присваивания, где левым операндом служит

переменная c и т.д.

Кроме обычной операции присваивания в С# есть составные операции

присваивания "операции:составные операции присваивания" \y "операции" , общую

форму которых можно представить так:

бинарная_операция =

Здесь бинарная_операция — это одна из следующих арифметических и

логических операций:

+ сложение,

- вычитание,

* умножение,

/ деление,

% получение остатка целочисленного деления,

& поразрядная конъюнкция,

⎜ поразрядная дизъюнкция,

∧ поразрядное исключающее ИЛИ,

>> поразрядный сдвиг вправо битового представления значения операнда,

<< поразрядный сдвиг влево битового представления значения операнда.

Назначение составных операций присваивания – упростить запись и ускорить

вычисление выражений присваивания, в которых левый операнд (переменная)

одновременно используется в качестве левого операнда выражения, расположенного

справа от операции присваивания.

Пример оператора присваивания с

традиционной операцией:

Эквивалентный по результату

оператор:

n=n+48;

n+=48;

Традиционный оператор, запись

которого можно упростить:

Применение составной операции

присваивания:

n=n/(n*n);

n/=n*n;

3.3. Операции инкремента (++) и декремента

Сокращёнными формами операции присваивания можно считать операции

автоувеличения (инкремент

"инкремент" ) ++ и автоуменьшения

(декремент

"декремент" ) ––.

Операция инкремента ++ увеличивает на 1 значение операнда. Операция

декремента –– уменьшает на 1 значение операнда.

Обе операции имеют префиксную и постфиксную формы. Префиксная форма

предусматривает изменение значения операнда до использования этого значения.

Постфиксная изменяет значение операнда после использования этого значения.

Пример:

int zone = 240, res; // объявление двух переменных

res = zone++; //Эквивалент: res=zone; zone=zone+1;

res =++zone; // Эквивалент: zone=zone+1; res=zone;

Значение res после выполнения всех этих операторов равно 242.

Операндом для операций ++ и –– может быть только леводопустимое

неконстантное выражение (например, переменная). Следовательно, ошибочными

будут выражения 84--,++0, (n-12)++, --(x+y) и им подобные.

Отметим, что операции ++ и –– применимы к операндам всех базовых типов

значений за исключением логического (bool).

Соседние файлы в папке CSBasicCourse2ndedPodbelsky