語句與語句塊
- 簡單語句:以分號結尾的基本執行單元(賦值、函數調用、返回等)。
- 語句塊:
{ ... } 包裹的多條語句,邏輯分組,不影響執行語義。
變量作用域
- 局部變量:函數/塊內定義,作用域從定義處到所在塊/函數結束。
- 全局變量:函數外定義,全程可見。
- 嵌套塊同名變量:內層遮蔽外層,離開內層恢復外層可見性。
順序結構
自上而下循序執行,最基礎結構。配合基本 I/O:
printf("格式串", 參數...); // %d %f %c %s %x 等
scanf("格式串", &變量...); // 需傳地址 &,讀取用戶輸入
scanf 必須傳地址:郵遞員投信需門牌號(地址),printf 只需信內容(值)。
選擇結構
if-else
if (條件) { ... }
else if (條件) { ... }
else { ... }
- 條件非 0 為真,0 為假。
- 單語句可省略大括號。
- 陷阱:
== 判斷相等,= 賦值。if (x = 1) 永真。
switch-case
switch (整型表達式) {
case 常量1: ... break;
case 常量2: ... break;
default: ...;
}
- 表達式類型:整型/字符/枚舉(非浮點)。
break 缺失導致貫穿(fall-through),可刻意利用或避免。
default 可選,無匹配時執行。
循環結構
for 循環
for (初始化; 條件; 遞增) { 體; }
// 適用:已知次數、計數器控制
- 初始化可定義變量(C99),作用域限於循環內。
- 三部分均可省略,分號必保留。
for(;;) 無限循環。
while 循環
while (條件) { 體; }
// 適用:未知次數、條件驅動
- 先判斷後執行,可能零次。
- 等價
for(;條件;)。
do-while 循環
do { 體; } while (條件);
// 至少執行一次,後判斷
跳轉控制
| 關鍵字 | 作用 |
continue | 結束本次迭代,直接進入遞增/條件判斷 |
break | 跳出整個循環/switch |
return | 跳出當前函數(main 中結束程序) |
常配合 if 實現條件跳轉。
巢狀循環
循環體內再包含循環,如發牌模擬:外層輪次,內層玩家。
goto(慎用)
start: ...; if (cond) goto start;
可構造任意控制流,但破壞結構化,難維護,教學/極簡場景外不建議。
章節小結
- 語句以分號結尾,塊用大括號。
- 變量先定義後使用,局部作用域到塊/函數末尾。
- 順序結構配合 printf/scanf 完成基本 I/O。
- 選擇:if-else 多條件,switch 多分支整型匹配。
- 循環:for 計數,while 條件,do-while 至少一次。
- continue/break/return 控制流向,巢狀循環常見,goto 慎用。
- 上一篇文章: C語言正則表達式實戰:POSIX regex.h 函數庫完整指南
- 下一篇文章: C語言進階:結構體、聯合、位操作、位域與枚舉全景解析
Copyright ©
程式碼之家 All Rights Reserved