当前位置: 代码迷 >> C语言 >> [求助]问个 continue 的问题
  详细解决方案

[求助]问个 continue 的问题

热度:770   发布时间:2007-09-26 09:03:24.0
[求助]问个 continue 的问题
#include <stdio.h>
main()
{
char s[]="ABCCDA";
int k;
char c;
for(k=1;(c=s[k])!='\0';k++)
{
switch(c)
{
case 'A':putchar('%');continue;
case 'B':++k;break;
default :putchar('*');
case 'C':putchar('&');continue;
}
putchar('#');
}
}

大大们能说说这里 continue的作用吗?
是继续下一个 case 还是执行下一次 for 循环
搜索更多相关的解决方案: continue  

----------------解决方案--------------------------------------------------------
跳出,判断下一个 case
----------------解决方案--------------------------------------------------------
没有continue也是判断下一个case

那就是说这里continue根本没意义是吧
----------------解决方案--------------------------------------------------------
可能我没说清楚
跳出,判断下一个 case,指的是去判断switch(c)里面C的值
----------------解决方案--------------------------------------------------------

结束本次循环,也就是不再执行continue下面的任何语句,继续判断下一次for循环。


----------------解决方案--------------------------------------------------------
switch(c)
{
case 'A':putchar('%');continue;
case 'B':putchar('#');break;
case 'A':putchar('*');break;
case 'C':putchar('&');continue;
}
对上这段 switch 如果c的值是 'A'
有第一个continue时,结果是 %*
没有第一个continue时,结果是 %#

是不是这样理解?

----------------解决方案--------------------------------------------------------
分支跳转,case 不能相同
----------------解决方案--------------------------------------------------------
哦对,不能相同。
那下面这样理解对不对。

switch(c)
{
case 'A':putchar('%');c='C';continue;
case 'B':putchar('#');break;
case 'C':putchar('*');break;
case 'D':putchar('&');continue;
}
如果c的值是 'A'
有第一个continue时,结果是 %*
没有第一个continue时,结果是 %#

----------------解决方案--------------------------------------------------------
请问下,你这一段代码要不要在之前的for循环中运行?
否则是不一样的
----------------解决方案--------------------------------------------------------

要在for循环中运行。
可不可以两个情况(在for循环中和不在for循环中)都说明一下呢。


----------------解决方案--------------------------------------------------------
  相关解决方案