int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;b++;} printf("%d,%d",a,b);为啥是2,1 我算的是1,0

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 17:00:57

int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;b++;} printf("%d,%d",a,b);为啥是2,1 我算的是1,0
int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;b++;} printf("%d,%d",a,b);
为啥是2,1 我算的是1,0

int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;b++;} printf("%d,%d",a,b);为啥是2,1 我算的是1,0
switch 语句中,case只是找到入口点,从该入口点开始所有的case都会执行,通常说它具有穿透性,如果想只执行某个case下面的代码,要在后面加上break,表明中断处理.
#include
int main()
{
int x=1,a=0,b=0;
switch (x)
{
case 0:
b++;
case 1://x=1,所以,从这里入口开始往下执行
a++;//a变成1
case 2:
a++;//a变成2
b++;//b变成1
}
//最后输出为2,1
printf("%d,%d",a,b);
return 0;
}
//加上break语句就会中断处理了,如:
int x=1,a=0,b=0;
switch (x)
{
case 0:
b++;
break;
case 1://x=1,所以,从这里入口开始往下执行
a++;//a变成1
break;//中断
case 2:
a++;
b++;
break;
}
这时候算出来的结果就是1,0了.