
3.2.3 增量/减量运算

在编程中,常常会遇到加1或减1的情况,这时很多程序员会使用以下代码。

或者使用简化形式:

为了简化这种操作,Java语言提供了增量/减量运算符。增量/减量运算符有两个,分别为++和--。这两个运算符的操作数必须是变量,并且适用于整数和小数类型。下面将详细讲解这两个运算符。
1.增量运算符
增量运算符的作用是对操作数加1。使用增量运算符构建的表达式被称为增量运算表达式。根据增量运算符在表达式中位置的不同,增量运算表达式又分为前缀增量表达式和后缀增量表达式。下面将详细介绍这两个表达式。
(1)前缀增量表达式的语法形式如下:

注意:在前缀增量表达式中,++被称为前缀增量运算符。
在运算时,先对操作数进行加1运算,运算后的结果作为该表达式的结果。表达式类型和操作数类型一致。
(2)后缀增量表达式的语法形式如下:

注意:在后缀增量表达式中,++被称为后缀增量运算符。
在运算时,会先获取操作数的值,将该值作为表达式的结果,然后对操作数进行加1运算。表达式类型和操作数类型一致。
【示例3-13】下面将使用增量运算符实现运算。代码如下:

运行结果如下:

2.减量运算符
减量运算符的作用是对操作数减1。使用减量运算符构建的表达式被称为减量运算表达式。根据减量运算符在表达式中位置的不同,减量运算表达式又分为前缀减量表达式和后缀减量表达式。下面将详细介绍这两个表达式。
(1)前缀减量表达式的语法形式如下:

注意:在前缀减量表达式中,--被称为前缀减量运算符。
在运算时,先对操作数进行减1运算,运算后的结果作为该表达式的结果。表达式类型和操作数类型一致。
(2)后缀减量表达式的语法形式如下:

注意:在后缀减量表达式中,--被称为后缀减量运算符。
在运算时,会先获取操作数的值,将该值作为表达式的结果,然后对操作数进行减1运算。表达式类型和操作数类型一致。
【示例3-14】下面将使用减量运算符实现运算。代码如下:

运行结果如下:

注意:--出现在左边与出现在右边的结果是不一样的:出现在左边时,先递减后赋值;出现在右边时,先赋值后递减。
注意:在增量/减量表达式中,可以看到增量/减量运算符使用了一个操作数,因此增量/减量运算符是一元运算符(单目运算符)。
在使用增量/减量运算符时,应避免在一个表达式中出现同一变量两次或多次进行该类运算,如以下代码:

运行程序,会输出错误信息,如图3.4所示。

图3.4 错误信息