Java开发之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

陷阱10 看似相同——增量、减量运算符在前在后

在程序当中经常使用自增、自减运算符对某一变量的值进行调整,实现对变量的值进行加1、减1运算,尤其是在for循环语句中,用来调整循环变量的值。

在使用自增、自减运算符时,如果只是对自变量的值进行调整,则自增、自减运算符放在自变量之前和之后是没有区别的;如果需要将自变量进行自增、自减运算的表达式赋值给某个变量,则将自增、自减运算符放在自变量之前和之后就有区别了。

注意

将由运行符++与自变量组成的表达式,赋值给变量时,如果运行符++写在自变量之后,则先取自变量的值赋值给变量,然后再对自变量进行加1运算;如果运行符++写在自变量之前,则先对自变量进行加1运算,然后再将自变量加1之后的值赋值给变量。

示例:

    // ++在自变量a之后的情况
    int a = 1;
    int b = a++;           // 将表达式a++赋值给变量b
    System.out. println ("a的值是:"+a);
    System.out. println ("b的值是:"+b);
    // ++在自变量c之前的情况
    int c = 1;
    int d = ++c;           // 将表达式++c赋值给变量d
    System.out. println ("c的值是:"+c);
    System.out. println ("d的值是:"+d);
    运行本示例,输出结果如图3.5所示。

图3.5 输出结果

说明

从输出结果可以看出,a和c的值都是2,说明运行符++写在变量a和c的前后,都对变量a和c进行了加1运算,由b和d的值可以看出,运行符++写在变量a之后时,是先取a的值并赋值给变量b,所以b的值是1;而运行符++写在变量c之前时,是先对c进行加1运算,然后将运算结果赋值给变量d,所以d的值是2。