int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;
1个回答

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了.