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

C++ 語言基礎入門(二):流程控制與迴圈完全指南

     編輯:VC 教學

前言

程式的靈魂在於流程控制。本章涵蓋條件判斷、三種迴圈結構、跳轉陳述式,以及避免常見陷阱的實戰技巧。

一、if 條件判斷

基本語法

if (條件運算式)
    單一陳述式;           // 單行可省略大括號

if (條件運算式) {
    陳述式1;
    陳述式2;             // 多行必須用大括號
}

⚠ 經典陷阱:分號誤用

if (x == 10);  // 錯誤!這是空陳述式
    DoSomething(x); // 無條件執行

編譯器不會警告,因為語法合法。習慣在 if 後直接加 { 可避免此錯誤。

布林值簡寫

bool fileGood = OpenFile();
if (fileGood)          // 等同 fileGood == true
    ReadData();

if (!fileGood)         // 等同 fileGood == false
    ReportError();

非零整數、非空指標在條件中視為 true。

if-else 多重分支

if (x == 20) {
    DoSomething(x);
} else {
    DoDifferentThing(x);
}

// 多條件鏈
if (cond1) {
    // ...
} else if (cond2) {
    // ...
} else {
    // 以上皆非
}

二、迴圈結構

所有迴圈共同要素:初始化 → 條件判斷 → 執行主體 → 狀態更新。

1. for 迴圈:計數控制首選

for (初始化; 條件; 更新) {
    迴圈主體;
}

經典範例

for (int i = 0; i < 10; ++i) {
    cout << "Iteration " << i << endl;
}

進階用法

// 多變數初始化與更新
for (int i = 0, j = 100; i < j; ++i, --j) { ... }

// 無限迴圈
for (;;) { ... }

// 範圍 for (C++11,適用容器/陣列)
for (auto& item : container) { ... }

2. while 迴圈:條件前測

while (條件) {
    主體;
}

適合「次數未知、依條件持續」場景,如讀取檔案直到 EOF。

3. do-while 迴圈:至少執行一次

do {
    主體;
} while (條件);

常用於選單輸入驗證。

三、迴圈控制陳述式

陳述式作用
break立即跳出當前最內層迴圈或 switch
continue跳過本次迭代剩餘部分,直接進入下一次條件判斷
goto無條件跳轉(極度不推薦,破壞結構化)

break/continue 範例

for (int i = 0; i < 100; ++i) {
    if (i % 7 == 0) continue;  // 跳過 7 的倍數
    if (i > 50) break;         // 超過 50 結束迴圈
    Process(i);
}

四、巢狀迴圈與標籤技巧

C++ 無標籤 break,跳出多層迴圈常用旗標或函數返回:

bool done = false;
for (int i = 0; i < 10 && !done; ++i) {
    for (int j = 0; j < 10; ++j) {
        if (Found(i, j)) { done = true; break; }
    }
}

// 或封裝為函數直接 return

五、常見錯誤與最佳實踐

錯誤正確做法
for (int i=0; i<=n; ++i) 存取 a[i]i < n(0-based 索引)
修改迴圈計數器避免在主體中修改 i,改用 while
浮點數作迴圈條件改用整數計數,或設定容差比較
無限迴圈無退出條件確保 break/return 條件必達

本章小結

掌握 if-else 分支與三種迴圈的適用場景,養成「大括號不省略」、「條件邊界仔細檢查」的習慣。下一章將介紹函數、陣列與字串處理。

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