case只是个程序入口地址,写5个等同于有5个标号写到同一处,所以执行1次
参考下面程序对比:
switch ( n )
{ case 0: case 1: case 2: case 3: case 4: case 5: i=i+1;
case 6: break;
default: i=0; break;
} //当n=0~5时都会去执行i=i+1;一次,然后顺序执行下面紧跟着的break;语句跳出switch
以上程序功能等同于下面程序,但上面程序易读,case 0:相当于下面的标号BBB0:
if ( n==0 ) goto BBB0;
else ( n==1 ) goto BBB1;
else ( n==2 ) goto BBB2;
else ( n==3 ) goto BBB3;
else ( n==4 ) goto BBB4;
可以
case A:语句;break;
分号后面 是要按照顺序结构执行的,break前的语句可以是函数,单个或多个语句 或者是空
可以自己写个小程序,验证,例如
#include
int main()
{
int a,b;
a=8;
switch(a)
{
case 8:a=a+2;b=a+3;break;
case 9:break;
}
printf("a=%d\n",a);
printf("b=%d\n",b);
}
将a分别赋值8 和9 ,执行俩遍试试