1. switch结构分支没加break;跳出语句,开始执行后,程序由x=1调到case 1 分支 a++(a由0自己加为1),由于没有break语句,程序继续执行到case 2 分支 a++ b++(a由1自加变2,b由0自加为1),之后程序printf输出 a=2 ,b=1
2.添加break后,结果是a=1,b=0
#include "stdio.h"
main()
{
int x=1,a=0,b=0;
switch(x)
{ case 0 : b++ ; break ;
case 1 : a++ ; break ;
case 2 : a++ ; b++ ; break ;
}
printf("a=%d,b=%d\n",a,b);
}
x=1,执行 case 1:a++; 语句,所以此时a=1;b=0;但是case 1:a++; 后没有break语句,无法跳出,所以程序会顺序执行case 2:a++;b++;即a=2,b=1。
case语句要注意使用break语句。
这里主要是switch语句,
因为x=1,所以在case中1作为入口,
首先执行a+1=1,
然后没有break所以继续执行case2使得a+1=2,
然后由于顺序执行执行了b++使得b=1