一、何為列舉型別?
列舉型別(enumeration)是c++中的一種派生資料型別,它是由使用者定義的若干列舉常量的集合。
宣告形式:
enum 列舉名 ;
例如:
enum weekday;
定義列舉資料型別變數,例如:
weekday myweekday;
(注意資料型別是weekday而不是enum weekday)
二、列舉型別應用說明
1,列舉元素具有預設數值,它們依次為:0,1,2,3,...。例如上例中sun的值為0,mon的值為1,tue為2,...,sat為6。
2, 也可以在宣告中另行定義列舉元素的值,如:
enum weekday;
定義sun為7,mon為1,以後順序加1,tue為2,wed為3,...,sat為6。
3, 對列舉元素按常量處理,但不能對它們直接賦予常量值。例如,下面的的語句是錯誤的:
sun=7;//sun是列舉元素,不能直接賦予常量值
如需要將整數附值給列舉變數,應進行強制型別轉換,例如:
sun=(weekday)7;//在值前面加(型別)是常用的強制型別轉換方法
4,列舉值可以進行關係運算:
1)可以使用關係運算子來比較兩個列舉變數。例如,以下 if 語句判斷儲存在 myweekday1中的值是否小於儲存在 myweekday中的值:
if ( myweekday1 < myweekday2)
如果 myweekday1儲存的值小於 myweekday2的值,則該語句為 true。否則該語句將為 false。
2)可以使用整數值而不是符號名稱來測試列舉變數。例如,以下兩個 if 語句是等效的:
if myweekday== mon)
if ( myweekday == 1)
5, 如果為列舉變數賦值,則它們必須是整數。以下賦值語句將產生錯誤:
enum weekday; //錯誤
6, 列舉資料型別的目的之一是符號名稱有助於使程式自我解釋。但是,這些名稱不是字串,而是數值,所以在輸出時,輸出的是數字,而不是字串。例如:
weekday myweekday = sun;
cout << myweekday;//輸出的是0這個數值
輸入結果如下:
7, 列舉值可以賦給整型變數,例如:
int a;
a = sun;//列舉值可以賦給整形變數
cout << a;
8, 因為列舉資料型別的符號名稱與整數值相關聯,所以它們可以在 switch 語句中使用,如下面的程式所示:
題目:口袋中有紅,黃,藍,白,黑5種顏色球若干個。每次從口袋中取出3個不同顏色的球,問有多少種取法?
#includeusing namespace std;
void transfer(int i)//將相應的數值組合通過switch語句轉換為字串
}enum ball ;//定義球的列舉型別
int main()
{ int i, j, k,count=0;
for (int i = red; i <= black; i++)
{ for (int j = i+1; j <= black; j++)
{ for (int k =j+1; k <= black; k++)
{transfer(i);
transfer(j);
transfer(k);
cout 執行結果:
三,總結
當乙個變數有幾種可能的取值時,可以將它定義為列舉型別。列舉型別有利於程式的可讀性。對列舉元素按常量處理,列舉元素具有預設數值,但不能對它們直接賦予常量值。因為列舉變數是整數,所以也可以使用關係運算子來比較兩個列舉變數,並且通常配合switch語句來輸出相應的值。
關於C 列舉型別enum
一 何為列舉型別?列舉型別 enumeration 是c 中的一種派生資料型別,它是由使用者定義的若干列舉常量的集合。宣告形式 enum 列舉名 例如 enum weekday 定義列舉資料型別變數,例如 weekday myweekday 注意資料型別是weekday而不是enum weekday...
C 列舉型別enum
關鍵字enum用於宣告列舉,列舉是一種值型別,由許多名字的常量 也叫列舉表 組成。例如 const int monday 0 const int tuesday 1 const sunday 7 可以用c 提供的列舉型別 enum week 列舉中每乙個常量都對應著乙個數值,如果不特別設定,列舉從0...
c 列舉 enum 型別
c 列舉 enum 型別 is2120 csdn 1.最平常的方法 public enum suits public void printallsuits z 2012 2 16 17 49 28 pm is2120 csdn 2.擴充套件方法 更通用,更方便一些 public static cla...