2018.01.11 | C与C++ | 3905 浏览 | 4 赞 | 0 条评论


请注意,本文编写于 2268 天前,最后修改于 1789 天前,其中某些信息可能已经过时。
AI摘要:本文讨论了C语言中循环和switch结构中的break和continue关键字的使用。通过一个示例代码,解释了在switch中break和continue的不同作用。在switch中,break针对switch结构,而continue针对for循环。文章通过分析示例代码的执行过程,得出了程序的输出结果为11。

Powered by AISummary and MoonShot Kimi Chat.

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

#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

本文链接:https://www.idealclover.top/archives/330/

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

标签: void, 共享

4

没有评论 T^T


🤔关于我
翠翠 idealclover
Product Manager @ByteDance
南京大学 2016 级本科生
了解更多
🏠关于博客
基于 Typecho 博客框架
使用个人的 clover clover 主题