Специальные варианты присваивания

В языке C# для двух частных случаев присваивания предложен специальный синтаксис. Для присваиваний вида х=х+1, в которых переменная увеличивается или уменьшается на единицу, используются специальные операции ++ (операция инкрементации) и -- (операция декрементации).

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

X = X <operator> (expression); // например: х = х * 2;

Для таких присваиваний используется краткая форма записи:

X <operator>= expression; // например: х *= 2;

В качестве операции разрешается использовать арифметические и логические (или побитовые) операции языка С#. Например:

х += u + v; у /= (u-v);

Операции инкрементации (++) и декрементации (--) могут быть префиксными (стоять перед переменной) и постфиксными (стоять после переменной). К высшему приоритету относятся постфиксные операции х++ и х-. Префиксные операции имеют приоритет на единицу меньший. Результатом выполнения как префиксных, так и постфиксных операций, является увеличение (++) или уменьшение (--) значения переменной на единицу.

Для префиксных операций (++х, -х) результатом их выполнения является измененное значение х, постфиксные операции возвращают в качестве результата значение х до изменения. Например:

int n1, n2, n = 5;

n1 = n++; // n1 = 5; n = 6;

n2 = ++n; // n2 = 7; n = 7;

Арифметические операции

В языке C# имеются обычные для всех языков арифметические операции: +, -, *, /, %. Все они перегружены. Операции + и – могут быть унарными и бинарными. Операция деления / над целыми типами осуществляет деление нацело, а операция деления для типов с плавающей и фиксированной точкой выполняет обычное деление.

Операция % определена над всеми арифметическими типами и возвращает остаток от деления нацело.

Тип результата зависит от типов операндов. Рассмотрим пример вычислений с различными арифметическими типами:

int n = 5, m =3, к;

float р; //

к = n/m; // к = 1

р = n/m; // р = 1.0

р = (n*1.0F)/m; // р = 1.66666663

к = n%m; // к = 2

double х=7, у =3, u,v,w;

u = х/у; // 2.3333333333333335

v= u*y; // v = 7.0

w= х%у; // w = 1.0

 
< Пред   СОДЕРЖАНИЕ     След >