可能有點幼稚,不過實在是不明白……敢問下面這個語句的具體執行過程是什麼樣子的?
for (i = 0, j = 0; i < 10; i++) j += j++;
你好,你這段代碼是沒有太多實際意義的,個人認為你是寫錯了吧,從程序運行來看,結果全為0.如圖;稍微改改就好了,j += j++;改成j += ++j;執行過程如下(以修改後的函數為例):
① i = 0, j = 0 ——》判斷 i 是否<10 ——》是——》++j——》將++j的值1帶入計算式j +=++j,此時j=1;
②i++ ——》判斷 i 是否<10 ——》i=1,是——》++j——》將++j的值2帶入計算式j +=++j,此時j=3;
③余下省略。。。
此題因注意
(1)a= j++ 和 b=++j 的區別,假設 j=1;那麼程序運行後,兩者都有 j=2,但前者 a=1,後者 b=2 。
見圖
(2)for ( A ; B ; C ){ D }執行順序為A——》判斷是否滿足B——》滿足則執行D(不滿足則循環結束)——》C——》判斷是否滿足B滿足則執行D(不滿足則循環結束)——》。。。。
修改代碼後程序運行如圖
希望能幫到你,有什麼問題可以繼續問我。