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

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

#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 国际许可协议进行许可,转载请注明出处。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

6 道 BATJ 必考的 Java 面试题

请对比 Exception 和 Error,另外,运行时异常与一般异常有什么区别?

1061
来自专栏java一日一条

编写高质量代码的思考

最近在看《代码大全》,可以说是一本软件开发的百科全书,特别厚,但是干货也很多。平时写代码,代码规范是一个最低的要求(很多老代码连最低要求都达不到),为什么要这样...

932
来自专栏JAVA高级架构

Java设计模式-责任链模式

作者:Jet啟思 链接:https://juejin.im/post/5a126b146fb9a0450c490201 今天来说说程序员小猿和产品就关于需求发生...

39311
来自专栏Java编程

Java回调机制解读

在一个应用系统中,无论使用何种语言开发,必然存在模块之间的调用,调用的方式分为几种:

2996
来自专栏ThoughtWorks

语言设计中的鸭子类型风格

image.png #思特沃克好声音# (图片:网络) 在动态语言的世界里一直流传着一种叫做鸭子类型的风格,其来自谚语:“如果行鸭子一样走路,像鸭子一样呱呱叫...

2987
来自专栏java一日一条

程序中减少使用if语句的方法集锦

大约十年前,我听说了反if的活动,觉得这个概念非常荒谬。如果不用if语句,又怎么能写出有用的程序呢?这简直太荒谬了。

1342
来自专栏韩伟的专栏

框架设计原则和规范(一)

此文是《.NET:框架设计原则、规范》的读书笔记,本文内容较多,共分九章,将分4天进行推送,今天推送1-3章。 1. 什么是好的框架 2. 框架设计...

4225
来自专栏landv

我的第一个Java程序和Java简介

1232
来自专栏精讲JAVA

Gof设计模式之七大设计原则(六)

前言 今天的设计原则重理论,举例子只能是文字形式,没法使用代码解释,希望大家可以多读几遍。真正体会到设计原则的好处。每一个设计原则,我都尽量用非...

21710
来自专栏java一日一条

编写高质量代码的思考

最近在看《代码大全》,可以说是一本软件开发的百科全书,特别厚,但是干货也很多。平时写代码,代码规范是一个最低的要求(很多老代码连最低要求都达不到),为什么要这样...

982

扫码关注云+社区

领取腾讯云代金券