在编程时,经会使用到变量的自增和自减操作,尤其在循环中用的最多。以自增为例,有两种自增方式,前置和后置,即i++和++i,他们的不同点在于i++是程序执行完毕后进行自增,++i程序开始时自增,实例如下:
package mianshi; public class zizengtest { 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); } }
运行结果:
3 i=3 8 i=5
很多人可能以为自己i++和++i概念了解的很明白,但是其实这东西没你想象的那么简单,比如以上的运行结果就会让你很迷惑,假如你质疑这个运行结果的话大可自己一试。
接下来我解释一下这几个操作:
i+++i++,这个首先是i++操作,此时注意i++的概念是程序执行完毕后进行自增,所以运算的值还是1,(你可以理解为i++就是一个指令让下一个i的为2,所以还是1)但是自增操作还是有的所以此时i为2,然后再加一个i++,还是程序执行完毕后进行自增所以运算的值为2,所以i+++i++就是1+2=3,在自增操作后i为3。
i++ + ++i,首先i++操作,此时运算值为3,但是自增操作还是有的所以此时i为4,接下来执行++i,++i直接执行所以值为5,i++ + ++i=8,i的值为5。
总结:你可以把i++当做一个指令让下一次i的值加1,而本身运算值不变
++i,直接执行i+1。