Упражнение. Добавочные и декрементные значения
В рамках этого модуля рассматриваются операции приращения и уменьшения значений (инкремент и декремент), которые задаются с помощью специальных операторов, представляющих собой сочетание символов.
Операции инкремента и декремента
Часто необходимо увеличить и/или уменьшать значения, особенно при написании логики цикла или кода, взаимодействующего со структурой данных.
Оператор +=
добавляет и присваивает значение справа от оператора значению слева от оператора. Таким образом, вторая и третья строки в следующем фрагменте кода равнозначны:
int value = 0; // value is now 0.
value = value + 5; // value is now 5.
value += 5; // value is now 10.
Оператор ++
увеличивает значение переменной на 1. Таким образом, вторая и третья строки в следующем фрагменте кода равнозначны:
int value = 0; // value is now 0.
value = value + 1; // value is now 1.
value++; // value is now 2.
Эти же методы можно использовать для вычитания, умножения и т. д. Некоторые из них показаны в следующем упражнении.
Примечание.
Такие операторы, как +=
, -=
, *=
, ++
и --
, называются составными операторами присваивания, поскольку они не только выполняют некоторую операцию, но и присваивают результат переменной. Например, оператор +=
называется оператором присваивания сложения.
Написание кода для увеличения и уменьшения значения
Выделите весь код в редакторе .NET и нажмите клавишу DELETE или BACKSPACE, чтобы удалить его.
Введите следующий код в редакторе .NET:
int value = 1; value = value + 1; Console.WriteLine("First increment: " + value); value += 1; Console.WriteLine("Second increment: " + value); value++; Console.WriteLine("Third increment: " + value); value = value - 1; Console.WriteLine("First decrement: " + value); value -= 1; Console.WriteLine("Second decrement: " + value); value--; Console.WriteLine("Third decrement: " + value);
Выполните код. Должен появиться следующий результат:
First increment: 2 Second increment: 3 Third increment: 4 First decrement: 3 Second decrement: 2 Third decrement: 1
Примечание.
В "втором добавочном" используется value += 1;
. Однако можно было бы использовать любое литеральное int
значение (или переменную) для увеличения этой суммы. Это утверждение справедливо и для "второй операции декремента": value -= 1;
.
Размещение операторов добавочного и декремента
Операторы увеличения и уменьшения имеют интересное качество , в зависимости от их положения, они выполняют свою операцию до или после получения их значения. Иными словами, если такой оператор указан перед значением (как в выражении ++value
) операция инкремента будет выполняться до того, как извлекается значение. Соответственно, выражение value++
задает выполнение приращения после того, как будет извлечено значение.
Использование оператора добавочного увеличения до и после значения
Удалите код из предыдущих шагов и введите следующий код в редактор .NET:
int value = 1; value++; Console.WriteLine("First: " + value); Console.WriteLine($"Second: {value++}"); Console.WriteLine("Third: " + value); Console.WriteLine("Fourth: " + (++value));
Выполните код. Должен появиться следующий результат:
First: 2 Second: 2 Third: 3 Fourth: 4
Обратите внимание на следующую строку кода:
Console.WriteLine($"Second: {value++}");
В этой строке выполняется два шага.
- Сначала извлекается текущее значение переменной
value
, после чего оно используется в операции интерполяции строки. - Приращение значения.
Следующая строка кода подтверждает, что было фактически выполнено приращение значения.
Console.WriteLine("Third: " + value);
Рассмотрим последнюю строку кода:
Console.WriteLine("Fourth: " + (++value));
В ней изменен порядок операций, поскольку оператор ++
располагается перед операндом value
.
- Приращение значения.
- Получите новое добавочное значение переменной
value
и используйте его в строковой операции.
Хотя это не обязательно, вы добавили круглые скобки вокруг выражения (++value)
, чтобы улучшить удобочитаемость. Некоторые разработчики могут неправильно понять выражение, в котором рядом друг с другом располагается множество операторов +
. Безусловно, любые решения по выбору стиля оформления являются субъективными. Но поскольку единожды написанный кот будет читаться многократно, следует уделять внимание удобочитаемости.
Кратко
Вот что вы узнали до сих пор о математических операциях в C#:
- С помощью составных операторов присваивания, таких как
+=
,-=
,*=
,++
и--
, вы можете выполнять математические операции (например, операции инкремента или декремента), а затем присваивать результат исходной переменной. - Поведение операторов инкремента и декремента зависит от того, располагаются ли они до или после операнда.