C 列舉 (enum)
C 列舉
enum 是一種特殊的型別,它表示一組常量(不可更改的值)。
要建立列舉,請使用 enum
關鍵字,後跟列舉的名稱,並用逗號分隔列舉項
enum Level {
LOW,
MEDIUM,
HIGH
};
注意,最後一項不需要逗號。
不強制使用大寫,但通常被認為是良好的實踐。
Enum 是 "enumerations"(列舉)的縮寫,意思是 "明確列出"。
要訪問列舉,您必須建立它的一個變數。
在 main()
方法中,指定 enum
關鍵字,後跟列舉的名稱(在此示例中為 Level
),然後是列舉變數的名稱(myVar
)
enum Level myVar;
現在您已經建立了一個列舉變數(myVar
),您可以為其賦值。
賦給它的值必須是列舉中的一個項(LOW
、MEDIUM
或 HIGH
)
enum Level myVar = MEDIUM;
預設情況下,第一項(LOW
)的值為 0
,第二項(MEDIUM
)的值為 1
,依此類推。
如果您現在嘗試列印 myVar,它將輸出 1
,這代表 MEDIUM
int main() {
// 建立一個列舉變數併為其賦值
enum Level myVar = MEDIUM;
// 列印列舉變數
printf("%d", myVar);
return 0;
}
自己動手試一試 »
更改值
如您所知,列舉的第一項值為 0。第二項值為 1,以此類推。
為了使這些值更有意義,您可以輕鬆地更改它們
請注意,如果您為某個特定項賦值,接下來的項將相應地更新其編號
enum Level {
LOW = 5,
MEDIUM, // 現在是 6
HIGH // 現在是 7
};
自己動手試一試 »
Switch 語句中的列舉
列舉通常在 switch 語句中使用,以檢查相應的值
enum Level {
LOW = 1,
MEDIUM,
HIGH
};
int main() {
enum Level myVar = MEDIUM;
switch (myVar) {
case 1
printf("Low Level");
break;
case 2
printf("Medium level");
break;
case 3
printf("High level");
break;
}
return 0;
}
自己動手試一試 »
為什麼以及何時使用列舉?
列舉用於為常量命名,這使得程式碼更易於閱讀和維護。
當您擁有一組您知道不會改變的值時,請使用列舉,例如月份、星期幾、顏色、一副牌等等。