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/12/01 07:09:19
int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;b++;} printf(
xœmOAǿC҆ >}Fmk$M4EA<$m-_f_O0!f&Sɕ5UMP-HW_j'$j$RR:8*)1ş8XR-v xo ᭗@[JHߛUrVt{D,sh]橻:ӎ7nl0mڨ)άCdFl&l~Q}Ɛ:3O"SvB8{F5C^9vM/Owr{|2=nwk9QR(>WKX<0D߸7ti'l4+)ƄpV@ޓ$%X4T}cL[]%L$gLZCɛ;=w%ыLN v&[?f[wp ڌ"}B~C&$͏,Vw#r! VrN,Ol

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