Hi!请登陆

[小雨学编程之C#] 表达式(续)自增、自减运算符

2021-2-28 29 2/28

之前我们知道了加、减、乘、除和取余数5个算数表达式,它的特点是:一个运算符和运算符两边两个操作数。

和=、+=、-=、*=、/=、%=六个赋值运算表达式,它的特点是:将运算符右边的操作数累计运算。

接下来介绍一个比较特殊的表达式:

我们看到一种有趣的代码写法a++,从程序运行结果来看,这样的写法的效果是,让变量a自己增加了1。所以这样的表达式叫做自增表达式,当然我们也可以推断出也有自减表达式:

从这样的表达式我们看到,它的特点是:让作用的操作数自动增加/减少1,但是我们会发现,如果:

将++/--符号放在操作数的前面,程序同样运行了,也会有一样的执行效果。可是,这两种方式的表达式有啥区别嘛?我们将代码简单修改:

这样的运行结果,让我们有些丈二和尚摸不着头脑,按理说虽然这里代码的区别只是运算符在操作数的前面或者后面,但是它整体的意思是让对应的操作数自增1呀?为什么一个显示了操作数自增了,一个却没显示,而是在之后的语句中显示了自增的效果呢?

这里我们拆解一下对应的代码,这里我们可以将a++和++a都理解成a=a+1,也就是说两者都执行了相同的动作,即将a+1的结果赋值给a,最后我们得到并使用运算后的a。

不过不同的是当++在a的前面的时候,意思是我们想要先执行a+1后得到的a。

而++在a后面的时候,意思是我们先要a,当本条程序执行完毕后,再执行a+1。

所以就有了上述的代码执行效果:

这部分代码中,第一次输出的结果是先执行a+1后的结果即2,第二次输出的结果是a本身也是2。

这部分代码中,第一次输出的结果为b本身,即1,这句话执行完毕后自动执行b+1,然后第二次输出结果便是已经执行完b+1后的结果,即2。

相同的理解方式也同样适用于--符号。

相关推荐