天天看点

操作符--自动递增和递减(前缀式和后缀式的区别、i++和++i区别)

         递增和递减运算是两种相当 不错的快捷运算(常称为“自动递增”和“自动递减”运算)。其中,递减操作符是“--”,意为“减少一个单位”;递增操作符是“++”,意为“增加一个单位”。举个例子来说,假设a是一个int(整数)值,则表达式++a就等价于(a=a+1)。递增和递减操作符不仅改变了变量,并且以变量的值作为生成的结果。

         这两个操作符各有两种使用方式,通常称为“前缀式”和“后缀式”。“前缀递增”表示“++”操作符位于变量或表达式的前面;而“后缀递增”表示“++”操作符位于变量或表达式的后面。类似地,“前缀递减”意为着“--”操作符位于变量或表达式的前面;而“后缀递减”意味着“--”操作符位于变量或表达式的后面。对于前缀递增和前缀递减(如++a或--a),会先执行运算,再生成值。而对于后缀递增和后缀递减(如a++或a--),会先生成值,再执行运算。下面的例子就阐释了这一概念:

package assignment;

public class AutoInc {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int i=1;
		System.out.println("i :"+i);
		
		System.out.println("++i :"+ ++i);
		
		System.out.println("i++ :"+ i++);
		
		System.out.println("i :"+i);
		
		System.out.println("--i :"+ --i);
		
		System.out.println("i-- :"+ i--);
		
		System.out.println("i :"+i);
	}

}
           

程序运行结果如下:

i :1
++i :2
i++ :2
i :3
--i :2
i-- :2
i :1
           

        从中可以看出,对于前缀形式,我们在执行完运算后才得到值。但对于后缀形式,则是在运算执行之前就得到值。它们是除那些涉及赋值的操作符以外,唯一具有“副作用”的操作符。也就是说,它们会改变操作数,而不仅仅是使用自己的值。