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.