首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言 for 迴圈省略寫法解析:for(;i++;) 執行流程與輸出結果

     編輯:程式設計綜合問答

程式碼片段

int i = -2;
for (; i++; );
printf("%d\n", i);

逐步推演

  1. 初始:i = -2
  2. 第一次判斷:條件式 i++ 先使用目前值 -2 判斷真偽(非 0 為真),然後 i 遞增為 -1。條件為真,進入迴圈本體(空語句)。
  3. 第二次判斷:i 現為 -1,條件 i++ 取值 -1(真),i 遞增為 0。
  4. 第三次判斷:i 現為 0,條件 i++ 取值 0(假),i 遞增為 1。條件為假,跳出迴圈。

最終輸出

1

關鍵觀念

  • for(;;) 三個分號分隔的表達式皆可省略,但分號不可省略。
  • 條件表達式常用關係運算,若使用後置遞增 i++,其值為遞增前的值。
  • 迴圈結束時,i 已經完成最後一次遞增(從 0 變 1)。

等價 while 寫法

int i = -2;
while (i++) {
    ; // 空本體
}
printf("%d\n", i); // 輸出 1

總結

for(;i++;) 會在 i 從 -2 遞增至 0 時執行三次空迴圈,最終 i 為 1。理解「條件判斷用舊值、副作用更新新值」是掌握此類題目的核心。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved