- Java程序員面試筆試寶典(第2版)
- 何昊等編著
- 354字
- 2022-06-17 16:00:48
1.15 ++i與i++的區(qū)別
在編程的時候,經(jīng)常會用到變量的自增或自減操作,尤其在循環(huán)中用得最多。以自增為例,有兩種自增方式:前置與后置,即++i和i++,它們的不同點(diǎn)在于,i++是在程序執(zhí)行完畢后自增,而++i是在程序開始執(zhí)行前進(jìn)行自增。如下例所示:

程序運(yùn)行結(jié)果為:


上例中的程序運(yùn)行結(jié)果讓很多讀者感覺不解,其實(shí)稍作分析,問題便迎刃而解了。表達(dá)式i+++i++首先執(zhí)行第一個i++操作,由于自增操作會稍后執(zhí)行。因此,運(yùn)算時i的值還是1,但自增操作后,i的值變?yōu)?,接著執(zhí)行第二個i++,運(yùn)算時,i的值已經(jīng)為2,而執(zhí)行了一個自增操作后,i的值變?yōu)?,所以i+++i++=1+2=3,而運(yùn)算完成后,i的值變?yōu)?。
表達(dá)式i++ + ++i首先執(zhí)行第一個i++,但是自增操作會稍后執(zhí)行。因此,此時i的值還是3,接著執(zhí)行++i,此時i的值變?yōu)?,同時還要補(bǔ)執(zhí)行i++的自增操作,因此此時i的值變?yōu)?,所以i+++++i=3+5=8。
同理,i+++i+++i++=5+6+7=18。
推薦閱讀
- Qt 5 and OpenCV 4 Computer Vision Projects
- 企業(yè)級Java EE架構(gòu)設(shè)計精深實(shí)踐
- Java面向?qū)ο笏枷肱c程序設(shè)計
- 高效微控制器C語言編程
- Oracle Exadata專家手冊
- Learning Salesforce Einstein
- Learning YARN
- Principles of Strategic Data Science
- MySQL程序員面試筆試寶典
- HTML5+CSS3+jQuery Mobile APP與移動網(wǎng)站設(shè)計從入門到精通
- 創(chuàng)意UI:Photoshop玩轉(zhuǎn)APP設(shè)計
- 超簡單:Photoshop+JavaScript+Python智能修圖與圖像自動化處理
- Tableau Dashboard Cookbook
- 自己動手構(gòu)建編程語言:如何設(shè)計編譯器、解釋器和DSL
- Building Web and Mobile ArcGIS Server Applications with JavaScript(Second Edition)