6.6 递增运算符和递减运算符
递增运算符对操作数增加1,递减运算符对操作数减去1,它们分别具有两种形式,分别是运算符前置和运算符后置,如表6-4所示。
我们通过一段代码来说明,如代码清单6-3所示。
代码清单6-3 递增运算符和递减运算符示例
1 using System;
2
3 namespace ProgrammingCSharp4
4{
5 class OperatorSample
6{
7 static void Main()
8{
9 int i=10;
10 int i1=++i;
11 Console.WriteLine("i={0}",i);
12
13 i=10;
14 int i2=i++;
15 Console.WriteLine("i={0}",i);
16
17 i=10;
18 int i3=—i;
19 Console.WriteLine("i={0}",i);
20
21 i=10;
22 int i4=i—;
23 Console.WriteLine("i={0}",i);
24
25 Console.WriteLine("++i={0}",i1);
26 Console.WriteLine("i++={0}",i2);
27 Console.WriteLine("—i={0}",i3);
28 Console.WriteLine("i—={0}",i4);
29}
30}
31}
输出如下:
i=11
i=11
i=9
i=9
++i=11
i++=10
—i=9
i—=10
代码清单6-3 的第9行定义了变量i,其值为10;第10行定义新的变量i1,执行i变量的前置递增操作(++i);在第11行打印i的新值;第13行将i的值重新设置为初始值10;第14行执行i变量的后置递增操作(i++);同样地,第15行打印i的新值。前置递减和后置递减同理,不再赘述。通过输出结果,我们可以看出,无论是前置还是后置,变量的值都是相同的,不同的就是整个表达式的返回值,如无论前置递增还是后置递增,i的值都增加了1变为了11,而递减操作则变为了9,但前置递增返回的是新值11,后置递增返回的是旧值10。因此可以得出如下结论:
❑无论是前置还是后置(无论递增还是递减),操作数的值都发生了改变,且值相同(对于前置还是后置递增或递减而言);
❑前置操作符返回表达式新值,后置操作符返回表达式旧值。