В C#, как и в большинстве языков программирования, можно выполнять
арифметические операции с числами. Они представляют различные действия над
операндами, в качестве которых могут выступать переменные или числа. Арифметические операции бывают унарными (с одним операндом), бинарными (над двумя).
Самые простые, бинарные арифметические операции.
• Сложение, +
int a = 5;
int b = 10;
int result = a + b; // 15
• Вычитание, -
int a = 32;
int b = 8;
int result = a - b; // 24
• Деление, /
int a = 50;
int b = 10;
int result = a / b; // 5
Обратите внимание, что если при делении может получиться дробное число, даже если вы используете целые числа (типа int). То есть, если вы захотите разделить 6 на 5, вы получите ответ 1. Для точного ответа вам нужно привести операнды к типу double или float. Например, вам нужно будет разделить 6.0 на 5.0, чтобы получить 1,2.
• Умножение, *
int a = 2;
int b = 3;
int result = a * b; // 6
• Остаток от деления, %
int a = 15;
int b = 4;
int result = a % b; // 3
Унарные операции, в которых участвует только один операнд.
• Инкремент, ++
Увеличивает нужное значение на 1.
Инкремент может стоять вначале значения: ++x
Значение x сначала будет увеличено на 1, а потом (если находится в операции) будет использовано как значение для операции. Пример:
int a = 2;
int b = 5;
int result = ++a + b; // сначала выполнится инкремент, который изменит значение a на 3, а потом будет использовано в выражении, которое получится 3 + 5 = 8
А также инкремент может стоять в конце значения: x++
Значение x сначала будет использовано в операции (если находится в ней), а потом уже будет увеличено на 1. Пример:
int a = 3;
int b = 4;
int result = a++ + b; // сначала выполнится выражение со старыми значениями 3 + 4 = 7, потом значение а станет 4.
Console.WriteLine(a) // 4. Значение увеличилось на предыдущей строчке
Инкременты могут использоваться самостоятельно как быстрое увеличение значения переменной на 1.
Например:
int a = 5;
a++; // на этой строке значение а увеличится на 1 и станет 6
Console.WriteLine(a); // 6
++a; // произошло то же самое, что и на строке выше. a стало 7
Console.WriteLine(a); // 7
• Декремент, --
Он выполняет то же самое, что и инкремент, только наоборот. Он вычитает из значения единицу.
Он может стоять перед значением, --a.
Сначала значение уменьшится на 1, а потом будет выполнено выражение с новым значением.
int a = 5;
int b = 7;
int result = --a + b; // сначала выполнится декремент, который уменьшит значение a на 1, а потом будет выполнено остальное выражение 4 + 7 = 11.
И может стоять после значения, a--.
Сначала выполнится выражение, и потом значение a уменьшится на 1.
int a = 10;
int b = 20;
int result = a-- + b; // 10 + 20 = 30, и после этого из a вычтется единица, a станет 9.
При выполнении арифметических операций они выполняются в таком порядке:
- Инкремент и декремент
- Умножение и деление, получение остатка
- Сложение и вычитание
Операции выполняются слева направо.
Пример:
int result = 2 + 2 * 5 / 2; // 7.
В этом примере сначала выполнится (2 * 5) = 10, так как оно "выше" по значению, чем (2 + 2), потом выполнится (10 / 2) = 5, так как оно "выше" по значению чем сложение
и потому что оно стоит правее, чем умножение. А потом выполнится (2 + 5) = 7. Итог - 7.
Для изменения порядка операций используются скобки. То, что находится в скобках, имеет наибольший приоритет, то есть оно будет выполнено самым первым. Если скобок несколько, они будут выполняться слева направо.
int result = (20 + 50) * 2 - (50 - 2); // 92. Сначала выполнится все то, что в скобках. Левее всего находится (20 + 50) = 70. Вторые скобки, (50 - 2) = 48. Далее идет умножение (70 * 2) = 140, а после этого вычитание (140 - 48) = 92.