1.5 Token 與排版規則
「Token」是程式碼中的最小單位——就像英文句子由單詞組成,程式碼由 token 組成。認識 token,能幫助你理解程式碼結構,也能減少排版錯誤。
Token 分為 5 類:
| 類型 | 說明 | 例子 |
|---|---|---|
| 關鍵字 | C++ 的特殊詞 | int、return、using、namespace |
| 識別碼 | 你自己取的名字 | a、sum、myFunction |
| 字面常數 | 直接寫的值(數字或文字) | 5、3.14、"Hello" |
| 運算子 | 計算或比較的符號 | +、-、*、/、<<、>> |
| 特殊符號 | 程式結構的符號 | ;、{、}、()、, |
(「Token」「關鍵字」「識別碼」「字面常數」「運算子」這些名稱先不用背——知道它們大概指什麼就好,後面會反覆遇到,自然就熟了。)
¶例子拆解
int a = 5;
int— 關鍵字a— 識別碼=— 運算子5— 字面常數;— 特殊符號
¶排版規則
C++ 對空格、縮排的要求不嚴格,但為了可讀性,我們要遵守基本規則:
| 規則 | ✓ 好的做法 | ✗ 不好的做法 | 為什麼 |
|---|---|---|---|
| 運算子周圍 | int sum = a + b; |
int sum=a+b; |
加空格讓程式更容易讀 |
| 逗號後面 | int a, b, c; |
int a,b,c; |
逗號後面加空格 |
| 括號內 | main() |
main ( ) |
括號和前面的名稱不空格 |
¶縮排:讓「誰在誰裡面」一眼看出來
排版規則裡最重要的是縮排——就是把某些行的開頭往右推幾個空格再開始寫。回頭看 1.1 的 Hello World:
int main() {
cout << "Hello World" << endl;
return 0;
}
main() 後面那對大括號 { } 框住的是「main 要做的事」。注意裡面的 cout 和 return 0;,開頭都先空了幾格(這裡是 4 格)才開始寫——這就是縮排。它讓你一眼看出「這兩行是包在 main 裡面的」。1.3 的 A+B 也一樣,int a, b;、cin >> a >> b; 這些 main 裡的動作,全都往右縮了一層。
C++ 其實不強迫你縮排(就算每行都頂著最左邊也能編譯成功),但沒縮排的程式很難讀。等之後寫到一層包一層的結構(例如迴圈裡再放迴圈),就全靠縮排才看得出層次。所以從現在開始養成習慣:每進到一層 { } 裡面,就往右縮一層(固定縮 2~4 格)。
¶換行:一行一個指令
C++ 不在意你怎麼換行——把 1.3 的 A+B 全部擠成一行,照樣能編譯、執行:
int a, b; cin >> a >> b; int sum = a + b; cout << sum << endl;
但這樣很難讀,出錯時也不好看出是哪一個指令出問題。養成習慣:一行只寫一個指令,像 1.3 原本那樣一行一個動作,清清楚楚:
int a, b;
cin >> a >> b;
int sum = a + b;
cout << sum << endl;
動手試試看: 拿一個之前寫過的程式,試著加上更多空格和縮排,看看變不變更好讀。