首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一道书上的练习题,关于switch解决思路

2012-03-29 
一道书上的练习题,关于switchmain(){int a0,i1switch(i){case 0:case 1:a+2case 2:case 3:a+3defau

一道书上的练习题,关于switch
main()
{
int a=0,i=1;
switch(i)
{
case 0:
case 1:a+=2;
case 2:
case 3:a+=3;
default:a+=7;
}
printf("%d",a);
}
最终结果是12,很不解这12是怎么得来的?

[解决办法]
额,switch ,你要是没有加break;结束的话
它就会一直运行到底。也就是a=2+3+7=12
其实lz多看几页,书上肯定有写的
[解决办法]
在每个case后面没有加break,就没有跳出siwtch语句,还在里面执行,所以剩下的都会执行一遍,2+3+7=12,结果就是12了
[解决办法]
switch是顺序执行的,从“入口条件”进去,执行这条语句后,如果不强制退出条件语句,它就会得寸进尺,一直执行到底!!!
也许这就是打破砂锅问到底吧。。。
[解决办法]
如果你的case后面没有跟上break的话,那么他就会从你的对应case入口处,一致往下执行,知道switch结束

热点排行