4 回答

TA貢獻112條經驗 獲得超42個贊
這個地方僅僅是一個i++與++i的區別,搞清楚了這二者的區別,你就知道結果為什么是11了。
在不進行運算的時候,這二者沒有差別,但是在進行運算后,i++是在進行了運算后i+1,而,++i是在運算前進行i+1,
因此,你的代碼中,total+=i++;這段代碼,第一次i=0,進入循環,然后total=5,接著i+1=6出循環進行跟7做比較,顯然,6<7,然后再一次進入循環,此時total=5+6,運算完后,i+1=7與7作比較,此時7<7不成立,結束循環。
核心問題還是i++與++i的區別

TA貢獻27條經驗 獲得超13個贊
容易搞混淆的時候,最好還原原來的運算語句。total+=i++;就寫成total=total+i++;,然后要了解知識點:在進行賦值運算時,i++是先賦值(或取值)再自身+1,即上述語句為total=0+5,i把5交出去之后,自身才+1變為6,而++i則是自身+1變為6后才把6交出去。記憶:i++,i在前就先取值,++i,i在后就后取值!
雷軍:are you okay?(′???`)

TA貢獻3593條經驗 獲得超0個贊

TA貢獻14條經驗 獲得超8個贊
你的代碼中,total+=i++;這段代碼,第一次i=0,進入循環,然后total=5,接著i+1=6出循環進行跟7做比較,顯然,6<7,然后再一次進入循環,此時total=5+6,運算完后,i+1=7與7作比較,此時7<7不成立,結束循環。
添加回答
舉報