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

C++ 迴圈完全指南:while、for、do-while、範圍 for、控制陳述式與無窮迴圈

     編輯:C++ 入門

C++ 迴圈完全指南:while、for、do-while、範圍 for 與進階控制

迴圈讓程式重複執行程式碼區塊。C++ 提供多種迴圈型別,適用不同場景。

三大基本迴圈

while 迴圈

前測試:先檢查條件,真才執行主體。

while (條件) {
    陳述式群;
}

適用:迴圈次數未知、依動態條件決定。

for 迴圈

經典三段式:初始化;條件;遞增/遞減。C++11 起支援範圍 for。

for (初始化; 條件; 遞增) {
    陳述式群;
}

// 範圍 for (C++11) - 遍歷容器/陣列
for (元素型別 &變數 : 容器) {
    陳述式群;
}

範例:

int arr[] = {1,2,3,4,5};
for (int &x : arr) x *= 2;  // 修改元素
for (const auto &x : arr) cout << x << ' '; // 唯讀遍歷

do-while 迴圈

後測試:至少執行一次,再檢查條件。

do {
    陳述式群;
} while (條件);

適用:選單驅動、至少一次輸入驗證。

巢狀迴圈

迴圈內再包含迴圈,常用於多維資料處理:

for (int i = 0; i < 3; ++i)
    for (int j = 0; j < 4; ++j)
        cout << '(' << i << ',' << j << ") ";

迴圈控制陳述式

陳述式效果
break立即跳出最內層迴圈或 switch
continue跳過本次迭代剩餘部分,直接進入下一次條件檢查
goto無條件跳轉標籤(極度不建議,破壞結構化程式)

break/continue 範例

for (int i = 0; i < 10; ++i) {
    if (i == 3) continue;  // 跳過 3
    if (i == 7) break;     // 7 結束
    cout << i << ' ';      // 輸出: 0 1 2 4 5 6
}

無窮迴圈

條件永真。常見寫法:

for (;;) { ... }      // 經典、推薦
while (true) { ... }  // 語意明確

用於事件迴圈、伺服器主迴圈。必須有 break/return/throw 退出機制,否則程式掛起。可用 Ctrl+C 強制中斷。

現代 C++ 迴圈最佳實務

  • 優先範圍 for 遍歷容器,避免索引越界、語意清晰。
  • 需要索引時用經典 for,或 for (size_t i = 0, n = v.size(); i < n; ++i) 快取大小。
  • 避免在迴圈條件中呼叫昂貴函式(如 strlen),預先計算。
  • std::for_each、std::transform 等演算法配合 Lambda 替代手寫迴圈,更具表達力、易平行化 (C++17 std::execution::par)。
  • 範圍 for 變數用 auto & (修改)、const auto & (唯讀)、auto (複製,小型型別)。

總結

掌握 while/for/do-while 三大基本型別、break/continue 控制流、範圍 for (C++11) 現代遍歷語法,並養成優先演算法、避免 goto 的習慣,編寫高效、安全、可讀的迴圈程式碼。

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