有关while语句问题
下列程序段运行后的结果:#include <stdio.h>
main()
{int a=0,i;
for (i=0;i<4;i++)
{
switch (i)
{
case 0:
case 1:
case 2:a+=3;
case 3:a+=2;
default : a+=5;
}
}
printf("a=%d\n",a);
}
答案是a=37,小弟刚学C,能帮我分析下吗?我怎么也没得到这个答案,谢谢了!
搜索更多相关的解决方案:
语句
----------------解决方案--------------------------------------------------------
因为没写break;
----------------解决方案--------------------------------------------------------
本人只是提示一下,由于CASE语句后都没有BREAK,所以会继续执行下去,而不再进行判断
----------------解决方案--------------------------------------------------------
比我还快,强
----------------解决方案--------------------------------------------------------
当i=0时,
执行,a+=3;a+=2;a+=5;
当i=1时,
执行,a+=3;a+=2;a+=5;
当i=2时,
执行,a+=3;a+=2;a+=5;
当i=3时,
执行,a+=2;a+=5;
就是37了
----------------解决方案--------------------------------------------------------
搞那么明干嘛,给人一点思考的余地吗?你说是不?
----------------解决方案--------------------------------------------------------
如果那个语句后面没有加break会执行下面语言,否则跳出switch{},执行下面的语句。
在复合语句里,要分析那个是主要,那个次要,根据它们的特点做出分析。
----------------解决方案--------------------------------------------------------
当i=0时,
执行,a+=3;a+=2;a+=5;
当i=1时,
执行,a+=3;a+=2;a+=5;
当i=2时,
执行,a+=3;a+=2;a+=5;
当i=3时,
执行,a+=2;a+=5;
就是37了
这位朋友说的太清楚了
----------------解决方案--------------------------------------------------------