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

C語言for(;1;)死循環語法詳解:省略初始化與更新,條件恆真

     編輯:C 語言問答

語法拆解

for ( ; 1 ; )  // 三個分號位置固定,中間表達式為常量 1
  • 初始化表達式:省略(第一個分號前為空)
  • 測試表達式:1(非零常量,C 語言中視為真)
  • 更新表達式:省略(第三個分號後為空)

等價寫法

while (1) { /* 循環體 */ }      // 最常用、可讀性最好
for (;;) { /* 循環體 */ }       // 經典簡寫,K&R 風格
do { /* 循環體 */ } while (1);  // 至少執行一次

運行機制

  1. 進入循環 → 執行循環體。
  2. 循環體結束 → 求值測試表達式 1 → 真 → 繼續下一輪。
  3. 永不自動終止,除非循環體內執行 break、return、exit()、longjmp() 或發生信號/異常。

常見應用場景

  • 事件循環:服務器 while(1){ accept(); ... }、遊戲主循環 while(1){ update(); render(); }。
  • 菜單驅動程序:while(1){ show_menu(); scanf("%d",&opt); if(opt==0) break; ... }。
  • 輪詢硬件/標誌:while(1){ if(flag) handle(); }。

最佳實踐

優先使用 while (1) 表達「無限循環」語義,代碼更易讀;僅在極度追求字符數最少(如代碼高爾夫)時用 for(;;)。

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