先看一段代码:
#include "stdio.h"
int main()
{
enum color{red,yellow,blue,white,black};
int i,j,k,n = 0,nChoice,loop;
//printf("red = %d,black = %d\n",red,black);
for(i = red; i <= black;i ++)
{
for(j = red;j <= black;j ++)
{
if(j != i)
{
for(k = red;k <= black;k ++)
{
if((k != i) && (k != j))
{
n ++;
printf("%d\t",n);
for(loop = 1;loop <= 3;loop ++)
{
switch(loop)
{
case 1:nChoice = i;break;
case 2:nChoice = j;break;
case 3:nChoice = k;break;
default:break;
}
switch(nChoice)
{
case red:printf("\tred\t");break;
case yellow:printf("\tyellow\t");break;
case blue:printf("\tblue\t");break;
case white:printf("\twhite\t");break;
case black:printf("\tblack\t");break;
default:break;
}
}
printf("\n");
}
}
}
}
}
printf("total: %d\n",n);
return 0;
}
从上面的例子中,我们可以看到:
在实际生活中,如果要处理的数据,是从已知的一组数据中选取。为了方便有效,我们可以定义已知的数据为枚举类型,在定义一个中间的变量,比如上题中,我们选择的变量是nChoice,根据它的值,我们可以分步的从枚举类型准确的获取相应的值,这在一定程度上有效地处理了数据。而在这步之前,我们事先利用一个loop变量的循环,分别取得的nChoice为后面的选择奠定了基础。