TOC

This article has been localized into Russian by the community.

Операторы:

Операторы инкремента/декремента

При работе со значениями, особенно числовыми, часто возникает необходимость увеличения или уменьшения на 1. Это, конечно, очень легко сделать - вы просто берете значение, добавляете 1, а затем присваиваете его исходной переменной. Вот пример:

int userAge = 41; 
userAge = userAge + 1;

ПеременнаяuserAge теперь содержит значение 42 вместо 41 - легко! Конечно, вы можете сделать то же самое, когда хотите вычесть 1:

userAge = userAge - 1; 

Постфиксный инкремент/декремент

Однако в C# есть гораздо более короткий оператор для выполнения этой работы: оператор инкремента / декремента. Он просто состоит из двух плюсов или двух минусов сразу друг за другом. Вот первый пример, переписанный для использования этого оператора:

int userAge = 41; 
userAge++;
Console.WriteLine("Age of user: " + userAge);

Результат точно такой же, но посмотрите, насколько он короче! И мы можем сделать его еще короче, потому что этот оператор может быть использован внутри существующего оператора:

int userAge = 41; 
Console.WriteLine("Age of user: " + userAge++);

Но постойте – когда тестировали, вы увидите, что userAge все равно печатается как 41. Почему? Потому что мы используем постфиксную версию, которая вычисляется после окружающего оператора. Другими словами, строка печатается до увеличения значения. Это будет поведение, которое требуется в некоторых случаях, но это не оптимально для этого случая. Вам нужен оператор префиксного инкремента.

Префиксный инкремент/декремент

Этот оператор выглядит точно так же, как постфиксная версия, но вместо того, чтобы срабатывать после переменной, он работает перед, инструктируя интерпретатор, оценить его перед оценкой окружающего оператора:

int userAge = 41; 
Console.WriteLine("Age of user: " + ++userAge);

Это будет иметь желаемый эффект, где userAge увеличивается перед выводом строки. Теперь это может показаться немного запутанным с тремя знаками+, но первый для конкатенации строк, в то время как последние два являются фактическим оператором. Если хотите, можете окружить оператор инкремента скобками, чтобы было ясно, что к чему относится:

Console.WriteLine("Age of user: " + (++userAge)); 

Вам решать - это работает точно также:

И, конечно, вы можете точно также использовать использовать оператор декремента, как показано выше. Это постфиксная форма:

int userAge = 41; 
Console.WriteLine("Age of user: " + (userAge--));

И префиксная форма:

int userAge = 41; 
Console.WriteLine("Age of user: " + (--userAge));

Резюме

Итак, это были операторы инкремента и декремента. Они прекрасно подходят для очень конкретного случая использования: когда вы хотите увеличить или уменьшить значение на 1. В следующей главе мы рассмотрим оператор присваивания сложения, который очень похож на этот, но имеет несколько более широкое применение.

Как и несколько других операторов C#, этот оператор подпадает под термин" синтаксический сахар " - та же задача может быть выполнена без этого конкретного оператора, но с ним ваш код становится короче. Становится ли он более читабельным, очень субъективно-некоторые люди любят его, в то время как другие считают, что их код становится легче читать и понимать без них. Это ваш выбор!


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!