Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


4.3.1. Операции «увеличить» и «уменьшить» (increment, decrement)

Операции "увеличить на единицу" и "уменьшить на единицу" могут быть префиксными и постфиксными. К высшему приоритету относятся постфиксные операции x++ и x--. Префиксные операции имеют на единицу меньший приоритет. Главной особенностью как префиксных, так и постфиксных операций является побочный эффект, в результате которого значение x увеличивается (++) или уменьшается (—) на единицу. Для префиксных (++x, --x) операций результатом их выполнения является измененное значение x, постфиксные операции возвращают в качестве результата значение x до изменения. Приведем пример применения этих операций, дополнив метод Express новым фрагментом:

//операции increment и decrement
//Следующее выражение допустимо
//писать подобное никогда не следует
in1 = ++in1 + in1 + in1++;
//in1 = ++in1 + in1 + in1++;
Console.WriteLine(" in1= " + in1);

Обратите внимание, что хотя у постфиксной операции высший приоритет, это вовсе не означает, что при вычислении выражения вначале выполнится операция in1++, затем ++in1, и только потом будет проводиться сложение. Ничего подобного, вычисления проводятся в том порядке, в котором они записаны. Поскольку на входе значение in1 было равно 6, то выражение будет вычисляться следующим образом:                                                                                               

7(7) + 7 + 7(8),

где в скобках записан побочный эффект операции. Так что консольный вывод даст следующий результат:                                                                                               

in1 = 21.

Операциями «увеличить» и «уменьшить» не следует злоупотреблять. Уже оператор, приведенный в нашем фрагменте, сложен для понимания из-за побочного эффекта.

 



<< ПредыдущаяОглавлениеСледующая >>