// ❌ 錯誤:分號導致空語句,DoSomething() 無條件執行
if (x == 10);
DoSomething(x);
// ✅ 正確:單行或多行皆需大括號
if (x > 10) {
cout << "Greater than 10" << endl;
DoSomethingWithNumber(x);
}
鐵律:if (條件) 後 絕不可加分號,否則編譯器視為空語句,後續代碼脫離條件控制。
bool fileGood = OpenSomeFile();
if (fileGood) ReadData(); // 等同 fileGood == true
if (!fileGood) ReportError(); // 等同 fileGood == false
任何非零值視為 true,零值視為 false。掌握簡寫能寫出更地道的 C++ 代碼。
if (cond1) {
// ...
} else if (cond2) {
// ...
} else {
// 以上皆非
}
所有迴循共享五要素:起點、迴徹體、終點、終止條件、break/continue。
for (int i = 0; i < 10; ++i) {
cout << "Iteration " << i << endl;
}
initial:初始化(僅執行一次)cond_expr:每輪迴徹前判斷adjust:每輪迴徹末尾執行(通常是遞增)bool done = false;
while (!done) {
done = SomeFunctionReturningBool();
}
條件為真持續執行;若初始即為假,迴徹體零次執行。
bool done = false;
do {
done = SomeFunctionReturningBool();
} while (!done);
適用於「先操作再檢查」場景(如選單輸入驗證)。
| 迴徹類型 | 適用場景 | 判斷時機 |
|---|---|---|
| for | 已知迴徹次數、計數器驅動 | 前置 |
| while | 未知次數、條件驅動 | 前置 |
| do-while | 菜單、輸入驗證等至少一次 | 後置 |