這次對這個代碼比上次有了2個改動,第一個改動用定義宏命令 #define,這個語法要感謝@garbageMan
第二個改動把第一次的i+2 改為了用if語句判斷。
代碼如下:
# include <stdio.h> # define BEGIN # define END main( sum = (i=BEGIN;i<=END;++ (i%==) sum +=i; printf(
代碼運行步驟思考,順序為16行的i=BEGIN 為1,i<=END 為2,若成立執行執行18行的步驟3,1%2==1成立執行sum+=i,再執行16行的++i 一次循環結束。(如果1%2==1不成立,直接執行++i)
以下為方便自己計算,將i<=END改為i<=10
1----->當i為1時,小於等於步驟(2)的END,執行步驟(3)i%2==1成立,執行sum+=i。sum是0加上i的值1,sum變成1,i為1 ++i,i為2.第一次循環結束。
2----->當i為2時,小於等於步驟(2)的END,執行步驟(3)i%2==1不成立,執行++i,第二次循環結束。i此時為3
3----->當i=3時,小於等於步驟(2)的END,執行步驟(3)i%2==1成立,執行sum+=i。sum在第一次循環時已變成了1,加上i的值3,sum第三次循環後的值為4,i為3,++i後,i為4,第三次循環結束。
4----->當i=4時,小於等於步驟(2)的END,執行步驟(3)i%2==1不成立,執行++i,第四次循環結束。i此時為5
5----->當i=5時,小於等於步驟(2)的END,執行步驟(3)i%2==1成立,執行sum+=i。sum在第三次循環時已變成了4,加上i的值5,sum第五次循環後的值為9,i為5,++i後,i為6,第五次循環結束。
6----->當i=6時,小於等於步驟(2)的END,執行步驟(3)i%2==1不成立,執行++i,第六次循環結束。i此時為7
7----->當i=7時,小於等於步驟(2)的END,執行步驟(3)i%2==1成立,執行sum+=i。sum在第五次循環時已變成了9,加上i的值7,sum第七次循環後的值為16,i為7,++i後,i為8,第七次循環結束。
8----->當i=8時,小於等於步驟(2)的END,執行步驟(3)i%2==1不成立,執行++i,第八次循環結束。i此時為9
9----->當i=9時,小於等於步驟(2)的END,執行步驟(3)i%2==1成立,執行sum+=i。sum在第七次循環時已變成了16,加上i的值9,sum第九次循環後的值為25,i為9,++i後,i為10,第九次循環結束。
10---->當i=10時,小於等於步驟(2)的END,執行步驟(3)i%2==1不成立,執行++i,第十次循環結束。i此時為11
11---->當i=11時,小於等於步驟(2)的END不成立,停止for循環。
-----------------------------------------------------------------------------------
最終結果1-10之間的奇數和為25
------------------------------------
如以上代碼有誤還請看到此博的朋友門指出,您的點撥是我學習最大的幫助。