由于枚举类型是整数类型,所以可以使用枚举类型的变量控制switch。
下面是一个例子
这个switch 传入today 然后去配对case 后面的值。如果配对上了 就执行。#include
#include
int main(void)
{
enum Weekday {Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday} today = Monday;
switch(today)
{
case Monday:
printf("星期一\n");
break;
case Tuesday:
printf("星期二\n");
break;
case Wednesday:
printf("星期三\n");
break;
case Thursday:
printf("星期四\n");
break;
case Friday:
printf("星期五\n");
break;
case Saturday:
printf("星期六\n");
break;
case Sunday:
printf("星期日\n");
break;
}
return 0;
}
事实上,我们可以把多个case 串联起来的。 这样可以 使得 多种可能匹配 对应一组执行语句。
比如下面代码
#include
#include
int main(void)
{
char ch = 'o';
switch(ch)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
printf("\n是元音字母");
break;
case 'h':
case 'j':
case 'p':
case 'k':
case 'l':
printf("\n是辅音字母");
break;
default:
printf("\n不是字母");
break;
}
return 0;
}
这里需要引入头文件 ctype.h 因为用到了 tolower函数。
这里是 如果输入的是元音 如果是其它的 就输出 否则 就输出默认default的
这里我们还可以 使用if else 来判断是否是字母。
这样就可以使得switch简单很多。
在ctype.h里面 还声明了很多 用来进行测试字符的函数#include
#include
int main(void)
{
char ch = 'o';
if(!isalpha(ch))
{
printf("\n不是字母");
}
else
{
switch(tolower(ch))
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
printf("\n是元音字母");
break;
default:
printf("\n是辅音字母");
break;
}
}
return 0;
}