本文就几个实例来说明Switch case 语句的用法。
说是C语言中的Switch case,其实和html+javascript中的Switch case语法是基本一样的哦。
问题:
有这么一个C语言程序:
#include <stdio.h>
void main() {
int a;
char myreturn;
do {
printf("请您输入1-7之间的整数:");
scanf("%d",&a);
printf("\n");
switch (a) {
case 1: 2;{
printf("您工作辛苦了!!");
break;
}
case 6: 7; {
printf("周末愉快,好好休息!!");
break;
}
default: {
printf("您的输入有错误!!!");
break;
}
}
printf("\n");
printf("是否重新开始(y/n):");
fflush(stdin);
myreturn=getchar();
printf("\n");
}while (myreturn=='y' || myreturn=='Y');
}
以上是正确的
但是把改成 case 1: 2: 3: 4: 5;{
printf("您工作辛苦了!!");
break;
}
就不对了,为什么?这么改呢
回答:
谁告诉你case 1:2;这种写法的?
case 1:case 2:才是正确的.
没出错只是因为你在2后面加了分号,编译器把2;当成一句代码来理解,当然不出错.
下面是其语法:
switch 语句
if 语句只能处理从两者间选择之一,当要实现几种可能之一时,就要用if...else if甚至多重的嵌套i f来实现,当分支较多时,程序变得复杂冗长,可读性降低。C语言提供了switch开关语句专门处理多路分支的情形,使程序变得简洁。
switch语句的一般格式为:
switch <表达式>
case 常量表达式1:语句序列1;
break;
case 常量表达式2:语句序列2;
break;
。。。。
case 常量表达式n : 语句n ;
break;
default: 语句n + 1 ;
其中常量表达式的值必须是整型,字符型或者枚举类型,各语句序列允许有多条语句,不需要按复合语句处理,若语句序列i为空,则对应的break语句可去掉。