所有複雜程式皆由三種基本結構組合而成:
C 語言提供豐富語句實現上述結構,本章建立基礎認知。
| 類別 | 形式 | 說明 | 範例 |
|---|---|---|---|
| 運算式語句 | 運算式; | 計算運算式值 | x=y+z; i++; |
| 函數呼叫語句 | 函數名(實參); | 呼叫函數執行 | printf("C Program"); |
| 控制語句 | 特定關鍵字 | 控制程式流程 | if, for, break, return |
| 複合語句 | { 敘述; ... } | 多敘述視為單一敘述 | 函數主體、分支/迴圈主體 |
| 空語句 | ; | 不執行任何操作 | while(getchar()!='\n'); |
if、switchdo-while、while、forbreak、goto、continue、return{ 開頭、} 結尾
while (getchar() != '\n'); // 清除輸入緩衝區至換行符
for (; getchar() != '\n'; n++); // 統計字元數,主體為空
形式:變數 = 運算式; — 由指派運算式加分號構成。
a = b = c = d = e = 5;
// 等價於(右結合性):
e = 5;
d = e;
c = d;
b = c;
a = b;
運算式 a = b = 5 合法,值為 5;但宣告時 int a = b = 5 非法。
| 特性 | 宣告初始化 | 指派語句 |
|---|---|---|
| 位置 | 變數宣告處 | 程式執行區塊 |
| 多變數間隔 | 逗號 | 分號(各自獨立敘述) |
| 連續指定 | 不允許 int a=b=c=5 | 允許 a=b=c=5; |
| 正確寫法 | int a=5,b=5,c=5; | a=5; b=5; c=5; 或 a=b=c=5; |
// 合法:指派運算式用於 if 條件
if ((x = y + 5) > 0) z = x;
// 非法:指派語句用於運算式中
if ((x = y + 5;) > 0) z = x; // 編譯錯誤
依右結合性由右至左逐步執行。
所有 I/O 皆透過標準庫函數實現。printf 為格式化輸出函數(f = format)。
printf("格式控制字串", 輸出項列表);
% 開頭,指定型態、寬度、精度等(如 %d、%ld、%c、%f、%.2f)格式字串與輸出項須數量、型態一一對應。
void main() {
int a = 88, b = 89;
printf("%d %d\n", a, b); // 88 89(空格分隔)
printf("%d,%d\n", a, b); // 88,89(逗號分隔)
printf("%c,%c\n", a, b); // X,Y(以字元型輸出 ASCII 88,89)
printf("a=%d,b=%d", a, b); // a=88,b=89(含提示字串)
}
展示相同數值,不同格式字串產生完全不同輸出結果。
原型:int putchar(int c)
功能:輸出單一字元至標準輸出。
回傳值:成功回傳該字元,失敗回傳 EOF。
putchar('A'); // 輸出 A
putchar('\n'); // 輸出換行
適用於單字元輸出,比 printf("%c") 更輕量。
printf 格式字串控制輸出樣貌,格式與項目須嚴格對應