Освой C# самостоятельно

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

C# поддерживает основные арифметические операторы: сложение, вычитание, умножение, деление.

Сложение и вычитание

Складывать и вычитать очень просто

C = A + T;
C = A - T;

Умножение

В отличии от знаков сложения (+) и вычитания (-) клавиши со знаком умножения на клавиатуре нет. Практически во всех языках программирования для знака умножения используется звездочка (*).

C = A * T;

Деление

Знака деления на клавиатуре также нет. Знак двоеточия (:) использовать нельзя. Было принято решение использовать для деления слэш (/)

C = A / T;

На делении стоит остановиться и рассмотреть его особенности подробнее. Давай напишем такую программу (отрывок):

int Cats, Mice, Part;

Cats = 4;

Mice = 9;

Part = Mice / Cats;

System.Console.WriteLine(Part);

Запустив программу, вы увидите, что результат будет отличаться от результата деления по старинке на бумажке. Так как переменные у нас целого типа, то и получаемый результат тоже должен быть целым числом. В нашем случае результат усекается, т.е. дробная часть просто отбрасывается. Усечение работает по принципу округления в сторону нуля и результатом целочисленного деления будет ближайшее к нулю целое число.

Если вас интересует остаток от деления, то нужно использовать оператор деления по модулю. Этот оператор обозначают знаком процента (%). Как видите в этом знаке содержится знак слэша, что указывает на связь с делением. Переделаем предыдущий пример:

int Cats, Mice, Part;

Cats = 4;

Mice = 9;

Part = Mice % Cats;

System.Console.WriteLine(Part);

При использовании отрицательных чисел, результат всегда имеет тот же знак, что и делимое. Деление по модулю очень удобно использовать для разбивки числа на части. Предположим вам надо получить последние две цифры 2011 года. Вот как можно это сделать:

iYear = 2011;

TwoDigit = iYear % 100;

Вот и другой пример. Предположим, у вас есть фильм, продолжительность которого равна 135 минутам. Чтобы разбить это число на часы и минуты, нужно применить такой код:

int FilmTime = 135;

int Hours = FilmTime / 60;

int Minutes = FilmTime % 60;

Обратите внимание, что переменная Minutes всегда будет содержать числа в диапазоне от 0 до 59.

Напоследок, остается сказать, что делить на 0 нельзя. У вас будет выводиться сообщение об ошибке либо на этапе компиляции, либо во время работы программы.

Приоритеты

Если используются несколько операторов в одном выражении, то вступают в силу правила приоритетов. Операторы умножения и деления имеют более высокий авторитет, чем операторы сложения и вычитания. Скобки позволяют переопределить приоритеты.

Сокращения

Очень часто приходится к существующей переменной прибавлять новое значение:

int Kitten = 4;

Kitten = Kitten + 5;

Чтобы дважды не набирать одну и ту же переменную, можно применить сокращенную запись:

Kitten += 5;

Не забывайте, что знак плюса всегда стоит перед знаком равенства. Аналогично используются и другие операторы:

Kitten /= 2;

Kitten *= 3;

Kitten %= 6;

Если вам надо к переменной прибавить или вычесть единицу, то вместо:

Kitten = Kitten + 1;

можно использовать знакомую сокращенную запись:

Kitten += 1;

а можно и более удобную запись (инкрементирование)

Kitten++;

Аналогично, можно уменьшать переменную на единицу (оператор декремента):

Kitten--;

Приведенные знаки икремента и декремента можно использовать как после переменной, так и перед ней:

++ Kitten;

В простых выражениях это не составляет проблемы. Но в сложных выражениях надо учитывать некоторые особенности. Например, возьмем выражение:

C = 3;
A = C++;

В этом случае, переменной будет присвоено значение переменной С (т.е. 3), а переменная C будет равна 4. Поменяем теперь порядок

C = 3;
A = ++C;

Здесь сначала переменная C увеличится на единицу, а затем новое значение будет присвоено и переменной A.

Hosted by uCoz