枚举在C/C++/C#中,是一个被命名的整型常数的集合。枚举的说明与结构和联合相似,其形式为:
2、枚举元素 不是字符常量 也不是字符串常量, 使用时 不要加 单、双引号。
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数]
} 枚举变量;
如果枚举没有初始化, 即省掉"=整型常数"时,则从第一个标识符开始, 顺次赋给标识符0,1,2,...。但是,当枚举中的某个成员赋值后,其后的成员仍按依次加1的规则确定其值。初始化时可以赋负数, 以后的标识符仍依次加1。
枚举元素本身 由系统 定义了 一个表示序号的 数值,从0 开始顺序定义为0,1,2…。
void testEnum()
{
//enum进行了初始化
enum Num
{
x1 = 5,
x2,
x3,
x4
};
Num x = x3;
cout << x << endl; //7
cout << endl;
//enum不初始化
enum e{ Zeroth, First, Second, Third, Fourth };
cout << "'Zeroth' 是: " << Zeroth << endl; // 0
cout << "'First' 是: " << First << endl; // 1
cout << "'Second' 是: " << Second << endl; // 2
cout << "'Third' 是: " << Third << endl; // 3
cout << "'Fourth' 是: " << Fourth << endl; // 4
}
注意:1、枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
2、枚举元素 不是字符常量 也不是字符串常量, 使用时 不要加 单、双引号。
int main()
{
enum color{ red, yellow, blue, white, black };
color pri; //定义color类型的变量pri
int i, j, k, n = 0, loop;
for (i = red; i <= black; i++)
for (j = red; j <= black; j++)
if (i != j)
{
for (k = red; k <= black; k++)
if (k != i && k != j)
{
n = n + 1;
cout << setw(3) << n;
for (loop = 1; loop <= 3; loop++)
{
switch (loop) //先后对3个球作处理
{
case 1:pri = color(i); break;
case 2:pri = color(j); break;
case 3:pri = color(k); break;
default:break;
}
switch (pri)
{
case red:cout << setw(8) << "red"; break;
case yellow:cout << setw(8) << "yellow"; break;
case blue:cout << setw(8) << "blue"; break;
case white:cout << setw(8) << "white"; break;
case black:cout << setw(8) << "black"; break;
default:break;
}
}
cout << endl;
}
}
cout << "total:" << n << endl;
return 0;
}