我们写程序的时候为了简写都会使用一些缩略符号,其中的加号在前和在后的区别很难理解。例如
var i=1;
var y=0;
++i;//先计算在赋值 ,这里i先给自身加上1,得到一个最新的结果,如果有赋值号会把这个结果给它。
i++;//先赋值在计算,这里如果有赋值号先把原始的i给它,之后i在自身加上1。
如果单纯只输出以上i的值结果的时候,其实效果都是一样的。
如果要是将上面的结果赋值给y的话结果就不一样了,例如:
y=++i;//y的结果是2也就是i先加上1在把加上1的结果给y。
y=i++;//y的结果是1也就是i先把值给y,之后i自己才加上1。
单独使用i++或者++i的时候功能都一样都是,如果他们赋值给某个值功能就不一样了。
[code]i++和++i看成一个整体,程序由上到下执行,不论i++还是++i程序经过他们的时候i必然加了1。[/code]
var i=0;
while(i++<3){打印i};
把i++看成一个整体y,那么就成了y=i++,相当于while(0<3){打印i};这里的y自然就是0了。
while(++i<3){打印i};
同上一样把++i看成是一个整体y,那么就成了y=++i,相当于while(1<3){打印i};这里的y自然就是0+1了。
总结:
[code]i的最后结果都给自己加上1;但是对于赋值的功能结果不一样[/code]