前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言循环和switch中的break和continue

C语言循环和switch中的break和continue

作者头像
idealclover
发布2018-10-31 17:17:46
2.1K0
发布2018-10-31 17:17:46
举报

事件的起因是同学甩来的一道题,问程序的输出结果

代码语言:javascript
复制
#include<stdio.h>
int main(void){
    int i;
    for(i=1;i<10;i++){
        switch (i%3) {
            case 0:
                i+=3;
                break;
            case 1:
                i+=4;
                continue;
        }
        i++;
    }
    printf("%d\n",i);
}

查了一些资料最终也弄明白了这个题,答案是11。

问题的关键在于循环和switch中的break和continue的不同。在switch中是响应break但不响应continue的,换句话说,在switch中使用break,break是针对switch的;而在switch中使用continue,continue是针对for的。

具体到这道题来说,第一次循环所响应的是case 1,i变成5后直接continue,i自增为6后继续循环;此时响应的是case 0,i自增为9后break出switch,执行接下来的语句i++,自增为10;之后在下一次for循环开始时自增为11,不满足i<10条件,跳出for循环。最终输出的i值即为11。

参考资料:

http://blog.csdn.net/lvyuan30276/article/details/9383221

版权声明:

本作品由idealclover采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载请注明出处。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档