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

C語言控制語句全解析:if、switch、while、for、do-while 與跳轉語句

     編輯:關於C語言

一、選擇結構

1. if 語句


// 單分支
if (x % 2) y += x / 2;

// 雙分支
if (x % 2 == 0) y += x / 2;
else y += (x + 1) / 2;

// 多分支
if (x % 2 == 0) y += x / 2;
else if (x % 4 == 1) y += 2 * ((x + 3) / 4);
else y += (x + 1) / 2;
  • 條件為非零即真,零為假。
  • 單語句可省略大括號,但強烈建議始終使用 { } 避免懸空 else 與維護錯誤。

2. switch 語句


switch (ch) {
    case 'Y':
    case 'y':  // 故意貫穿處理大小寫
        puts("Yes"); break;
    case 'N': case 'n':
        puts("No"); break;
    default:
        puts("Invalid");
}
  • 表達式類型必須為整型 (char, int, enum)。
  • case 標籤必須為整型常量表達式,不可為變量。
  • 貫穿特性:無 break 將繼續執行下一 case。利用此特性合併情況,或用 [[fallthrough]] (C23) 顯式標註。
  • default 可選,位置任意 (通常置末)。

二、循環結構

1. while 循環 (先檢查)


while (condition) {
    // loop body
}
  • 進入前先判斷,可能零次執行。

2. for 循環 (計數器風格首選)


int factorial(int n) {
    int result = 1;
    for (int i = 1; i <= n; i++) { // C99 支持循環內聲明 i
        result *= i;
    }
    return result;
}

三部分:初始化; 條件; 調整,均可省略但分號必保留。

  • for (;;) 等價 while(1) 無限循環。
  • 多變量控制用逗號運算符:for (i=0, j=n; i。
  • 選擇原則:已知次數/計數器用 for,條件複雜/非計數用 while。

3. do-while 循環 (後檢查)


do {
    // 至少執行一次
} while (condition);
  • 保證循環體至少執行一次,適用於菜單交互、輸入驗證等場景。
  • 注意結尾分號 ; 不可少。

三、跳轉語句

語句作用適用範圍
break立即退出最內層循環或 switchfor, while, do-while, switch
continue跳過本次循環剩餘部分,直接進入下一次迭代 (for 執行調整部分)for, while, do-while
goto label無條件跳轉到標號慎用,僅用於錯誤處理統一出口等極少數場景
return退出當前函數函數內部

四、實戰建議

  1. 優先使用 for/while 結構化循環,避免 goto。
  2. switch 處理多值匹配優於長 if-else 鏈 (編譯器可優化為跳轉表)。
  3. 循環條件保持簡單,複雜邏輯移入循環體或提取函數。
  4. 嵌套層級超過 3 層考慮重構 (提前返回、提取函數)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved