Java程序员面试笔试宝典(第2版)
上QQ阅读APP看书,第一时间看更新

1.15 ++i与i++的区别

在编程的时候,经常会用到变量的自增或自减操作,尤其在循环中用得最多。以自增为例,有两种自增方式:前置与后置,即++i和i++,它们的不同点在于,i++是在程序执行完毕后自增,而++i是在程序开始执行前进行自增。如下例所示:

程序运行结果为:

上例中的程序运行结果让很多读者感觉不解,其实稍作分析,问题便迎刃而解了。表达式i+++i++首先执行第一个i++操作,由于自增操作会稍后执行。因此,运算时i的值还是1,但自增操作后,i的值变为2,接着执行第二个i++,运算时,i的值已经为2,而执行了一个自增操作后,i的值变为3,所以i+++i++=1+2=3,而运算完成后,i的值变为3。

表达式i++ + ++i首先执行第一个i++,但是自增操作会稍后执行。因此,此时i的值还是3,接着执行++i,此时i的值变为4,同时还要补执行i++的自增操作,因此此时i的值变为5,所以i+++++i=3+5=8。

同理,i+++i+++i++=5+6+7=18。