C语言笔记-枚举类型

 
 1 //实现选择一个动物,输出一个叫声.
 2 #include <stdio.h>
 3 enum animal {Dog,Cat,Monkey,No};
 4 
 5 void dog()
 6 {
 7     puts("wang wang!");
 8 }
 9 void cat()
10 {
11     puts("miao miao!");
12 }
13 void monkey()
14 {
15     puts("zhi zhi!");
16 }
17 
18 enum animal choose(void)
19 {
20     //写法1:
21     int answer;//enum常量的数据类型都是int类型,所以可以设置int.
22     //enum animal answer;
23     do{
24         printf("选择一个动物: 0--狗, 1--猫, 2--猴, 3--不选择.");
25         scanf("%d",&answer);
26     }while(answer<0 || answer>3);//本句可以写成}while(answer<Dog || answer>No);
27     return (enum animal)answer;//对应本函数的输出类型,在这儿进行强制转换,不然编译器会报错int类型的answer变量无法使用.
28     //return answer;
29     
30     /*写法2:
31     enum animal answer;//直接设置answer为enum answer类型,输出就不用进行类型转换了.
32     do{
33         printf("选择一个动物: 0--狗, 1--猫, 2--猴, 3--不选择.");
34         scanf("%d",&answer);
35     }while(answer<0 || answer>3);
36     return answer;*/
37 }
38 
39 int main()
40 {
41     enum animal voice;//类似int a;
42     do
43     {
44         switch (voice=choose())//强制转换了choose的输出类型后这里才能使用
45         {
46             case Dog:
47                 {
48                     dog();
49                     break;
50                 }
51             case Cat:
52                 {
53                     cat();
54                     break;
55                 }
56             case Monkey:
57                 {
58                     monkey();
59                     break;
60                 }
61         }
62     }while(voice!=No);
63     return 0;
64 }

 

结果:

选择一个动物: 0--狗, 1--猫, 2--猴, 3--不选择.0//我输入了0
wang wang!
选择一个动物: 0--狗, 1--猫, 2--猴, 3--不选择.1//我输入了1
miao miao!
选择一个动物: 0--狗, 1--猫, 2--猴, 3--不选择.2//我输入了2
zhi zhi!
选择一个动物: 0--狗, 1--猫, 2--猴, 3--不选择.3//我输入了3

--------------------------------
Process exited after 9.846 seconds with return value 0
请按任意键继续. . .

 

posted @ 2016-04-04 10:42  小样和牛牛  阅读(205)  评论(0编辑  收藏  举报