上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。