條件語句
- `if (expr) stmt1 [else stmt2]`:expr 非零為真。`else` 匹配最近未配對 `if`(懸空 else 問題),用大括號明確分組。
- `switch (expr) { case const: stmts; break; default: stmts; }`:expr 整數類型,case 常量表達式,**貫穿特性**需 `break` 阻斷,`default` 可選。
循環語句
| 循環 | 語法 | 特點 |
| while | `while (expr) stmt` | 先判後執,可零次 |
| do-while | `do stmt while (expr);` | 先執後判,至少一次 |
| for | `for (init; cond; inc) stmt` | 三部分可空,`cond` 缺省為真(無限循環) |
跳轉控制
- `break`:跳出**最內層** `switch`/`while`/`do-while`/`for`。
- `continue`:結束本輪循環,**直接跳到判斷/增量部分**(for 跳到 inc,while/do-while 跳到 cond)。
- `goto label;`:無條件跳轉,**慎用**,僅限錯誤處理跳出多層循環等極少場景。
嵌套循環 break 技巧
// 外層需跳出
bool done = false;
for (i=0; i
總結
控制流是程序骨架。優先使用結構化構造(if/for/while),善用 `break`/`continue` 簡化邏輯,極少數情況下 `goto` 配合標籤處理多層異常跳出,代碼清晰、可維護。