当前位置: 代码迷 >> C语言 >> 有关while语句问题
  详细解决方案

有关while语句问题

热度:147   发布时间:2007-03-13 17:25:33.0
有关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了
这位朋友说的太清楚了
----------------解决方案--------------------------------------------------------
  相关解决方案