C语言中switch里面的case,需要时别忘记加break,不然会一直执行至结束
#include <stdio.h>
int func(int a)
{
int b;
switch(a)
{
case 1: b = 30;
case 2: b = 20;
case 3: b = 16;
default: b = 0;
}
return b;
}
int main(void)
{
printf("%d\n",func(1));
return 0;
}
从a=1时进去执行case1,紧接着执行case2,再执行case3,最后执行default,最终输出结果为b=0,所以函数func(1)=0
如果想要按照代码中执行为1时停止,需要在case1后面加上break;
#include <stdio.h>
int func(int a)
{
int b;
switch(a)
{
case 1: b = 30;
break;
case 2: b = 20;
case 3: b = 16;
default: b = 0;
}
return b;
}
int main(void)
{
printf("%d\n",func(1));
return 0;
}
加上break后,从a=1时进去执行case1,输出结果为b=30,所以函数func(1)=30
也可以根据现实情况选择不在case后面加break; 比如当用户输入的多个case返回的结果一样时,就可以把这些case聚堆放在一起,且它们中间不需要加break,只需要在最后加一个break就可以了