Упражнение - Инкремент и декремент значений
Последние основные операции, о которых вы узнаете в этом модуле, заключается в том, как увеличивать и уменьшать значения с помощью специальных операторов, которые являются сочетаниями символов.
Увеличение и уменьшение
Часто необходимо увеличить и/или уменьшать значения, особенно при написании логики цикла или кода, взаимодействующего со структурой данных.
Оператор += добавляет и присваивает значение справа от оператора значению слева от оператора. Таким образом, строки двух и трех в следующем фрагменте кода одинаковы:
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.
Эти же методы можно использовать для вычитания, умножения и т. д. В следующих упражнениях будет выделено несколько действий.
Замечание
Операторы, такие как +=, -=, *=, ++, и -- называются составными операторами присваивания, так как они объединяют некоторые операции в дополнение к присваиванию результата переменной. Оператор += специально называется оператором присваивания с сложением.
Написание кода для увеличения и уменьшения значения
Выберите весь код, который вы написали ранее в редакторе кода C# , и нажмите клавишу DELETE или Backspace , чтобы удалить его.
Введите следующий код в редакторе кода C#:
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++ после его получения.
Используйте оператор инкремента до и после значения
Удалите код из предыдущих шагов и введите следующий код в редактор кода C#:
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#:
- Используйте операторы составного присваивания, такие как
+=,-=,*=,++и--, для выполнения математических операций, таких как увеличение или уменьшение, а затем присвойте результат исходной переменной. - Операторы инкремента и декремента ведут себя по-разному в зависимости от того, является ли оператор до или после операнда.