C++ 列舉 (enum)
C++ 列舉
列舉是一種特殊的型別,表示一組常量(不可更改的值)。
要建立列舉,使用 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;
// 列印列舉變數
cout << myVar;
return 0;
}
自己動手試一試 »
更改值
如您所知,列舉的第一項值為 0。第二項值為 1,依此類推。
為了使值更有意義,您可以輕鬆更改它們:
enum Level {
LOW = 25,
MEDIUM = 50,
HIGH = 75
};
int main() {
enum Level myVar = MEDIUM;
cout << myVar; // 現在輸出 50
return 0;
}
自己動手試一試 »
請注意,如果您為某個特定項賦值,則後續項將相應地更新其編號:
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
cout << "Low Level";
break;
case 2
cout << "Medium level";
break;
case 3
cout << "High level";
break;
}
return 0;
}
自己動手試一試 »
為什麼以及何時使用列舉?
列舉用於為常量命名,這使得程式碼更易於閱讀和維護。
當您擁有一組您知道不會改變的值時,請使用列舉,例如月份、星期幾、顏色、一副牌等等。