控制流

0. 概述


  • 顺序结构:按照书写顺序 从上至下 执行每一条语句

    顺序.png

  • 分支结构:对 给定的条件 进行 判断,根据 判断结果 来决定执行 哪一段代码

    选择.png

  • 循环结构

    • 定义:在 给定条件 成立 的情况下,反复执行 某一段代码

      循环.png

    • 组成

      1. 控制变量:用来 标识 循环什么时候 继续, 什么时候 退出
      2. 控件条件:循环 继续 和 退出 的主要依据
      3. 循环体:重复执行的代码块
      4. 操作控制变量模块:让 控制条件 趋近于 假
      

1. 分支结构


  • if:像一棵树 分散树枝
    • 概念:当 条件表达式 时,就会执行 if 后面 大括号 中的内容
    • 分类
      • 单分支判断
        int age = 19;
        if (age > 18) {
          printf("开网卡\n");
        }
        if (age > 30) printf("迎娶白富美\n");
        
      • 双分支判断
        int age = 20;
        if (age > 18) {
          printf("开网卡\n");
        } else {
          printf("喊你妈来\n");
        }
        if (0)
          printf("A\n");    
        else
          printf("B\n");
        
      • 多分支判断
        int day = 6;
        if (day == 1) {
          printf("熟悉环境\n");
        } else if (day == 2) {
          printf("熟悉同事\n");
        } else if (day == 3) {
          printf("熟悉代码\n");
        } else if (day == 4) {
          printf("编写代码\n");
        } else if (day == 5) {
          printf("合并代码\n");
        } else {
          printf("睡觉ing...\n");
        }
        
      • if 嵌套
        int number = 6;
        if (number > 5) {
          if (number < 10) {
            printf("一个 5 ~ 10 之间的数\n");
          }
        }
        
  • switch:常与 枚举 联用
    • 概念:匹配 整数值,执行该整数值 后面 的内容
    • 形式
      switch (表达式) {
        case 整数;
           语句;
         break;
        case 整数;
           语句;
         break;
          ...
         default;
           语句;
         break;
      }
      
    • 注意
      1. default 可以省略
      2. 结束 switch 语句
         (1) 遇到 break
         (2) 执行到结束大括号 }
      3. 只要满足一个 case,那么后面所有的 case 和 default 都会失效
      

2. 循环结构


  • while:侧重于 计算数值增量
    • 概念:当 条件表达式 时,就会执行 while 后面 大括号 中的内容
    • 形式
      while (条件表达式) {
        语句块;
      }
      
  • do while:侧重于 用户输入校验
    • 概念:无论 条件表达式是否满足,do while 先 执行一次 循环体
    • 形式
      do {
        语句块;
      } while (条件表达式);
      
  • for:侧重于 遍历一个集合
    • 概念:当 控制条件 时,就会执行 循环体
    • 形式
      for (初始化控制变量; 控制条件; 操作控制变量模块) {
        语句块;
      }     
      
    • 执行流程
      (1) 执行 "一次" 初始化控制变量 操作
      (2) 判断控制条件 "是否" 成立;若条件成立,就会执行循环体;若不成立,就结束循环
      (3) 循环体执行完毕后,执行 "操作控制变量模块",然后再次判断条件,"重复" 上述过程
      

3. 控制转移


  • return:表示从 当前执行流 返回上层执行流 继续 执行
  • break:会 立刻结束 整个控制流执行
  • continue:让一个 循环体 立刻停止 本次循环重新开始 下次循环

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • Swift 提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行...
    穷人家的孩纸阅读 690评论 1 1
  • Swift提供了多种控制流声明。包括while循环来多次执行一个任务;if,guard和switch声明来根据确定...
    BoomLee阅读 1,931评论 0 3
  • [The Swift Programming Language 中文版]本页包含内容: Swift提供了多种流程控...
    风林山火阅读 549评论 0 0
  • 上一篇文写的很垃圾,我自己也知道,本不想放出来,想了想还是留着吧,给自己提个醒。 写那类文章我很纠结,故事可以讲出...
    模糊的脸阅读 187评论 0 0
  • 是我的读者应该都知道,我从来不写八卦娱乐,不写热文,不蹭热度。不愿淌一淌那些鼎沸的浑水。 但鉴于抄袭事件层出不穷,...
    如巳阅读 1,422评论 7 33