zoukankan      html  css  js  c++  java
  • C 碎片四 流程控制

     

    前面介绍了程序中用到的一些基本要素(常量,变量,运算符,表达式),他们是构成程序的基本成分,下面将介绍C语言中流程控制的三种结构:顺序结构、分支结构、循环结构

     

    一、顺序结构

    顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行

    二、分支结构

    分支结构的程序设计是依据一定的条件选择执行的路径,而不是严格按照语句出现的物理顺序

    1, if分支

      格式一:

        if(表达式){
            语句;
        }

      执行流程:

        1、当程序执行到if语句时,首先判断表达式的真假;若表达式的值为真(非0),则执行大括号里面的语句;若表达式的值为假(0),则执行大括号后面的语句

      格式二:

        if(表达式) {
            语句1;
        } else {
            语句2;
        }    

      执行流程:

        1、当程序执行到if-else语句时,首先判断表达式的真假;若表达式的值为真(非0),则执行语句1,若表达式的值为假,则执行语句2

      格式三:

        if(表达式1) {
            语句1;
        } else if(表达式2) {
            语句2;
        } else if(表达式n) {
            语句n;
        } else {
            语句m;
        }

      执行流程:

        1、当程序执行到if语句时,首先判断表达式1的真假;若表达式1的值为真(非0),则执行语句1;若表达式1的值为假(0),判断表达式2的真假

        2、若表达式2的值为真(非0),则执行语句2,若表达式2的值为假(0),判断表达式3的真假,依次类推

        3、若若表达式n的值为假(0),则会执行else里面的语句m

    2, switch分支

      格式四:

        switch (整型表达式) {
            case 整型常量1:
                语句块1;
            case 整型常量2:
                语句块2;
            case 整型常量3:
                语句块3;
                ...
            default:
                语句块n;
        }

      执行流程:

        1、首先判断整型表达式的值,然后用值来匹配case后面的整型常量,匹配到整型常量1则执行语句1,匹配到整型常量2则执行语句2

        2、如果都没有匹配到,则执行default中的语句块n

    三、循环结构

    循环结构的程序设计是在合适的条件判断下,重复做某些操作,只要有重复操作我们就可以使用循环,具体代码体现在重复执行相同的语句

    循环结构的三个要素:循环变量、循环体和循环终止条件

    C语言中提供四种循环:goto循环、while循环、do…while循环和for循环,不提倡使用goto语句

    1, goto循环

        int i = 0;
    LABEL:/*标签*/
        if (i<100/*表达式*/) {
            i++;
            printf("%d
    ",i);/*语句块*/
            goto LABEL;/*跳转标签*/
        }

      执行过程:

      1、首先判断表达式是否成立,如果不成立,跳出/结束整个循环,如果成立那么执行语句块的内容,语句块的内容执行完之后

      2、跳到goto后面指定的标签处,再次执行判断表达式是否成立

      3、如果成立继续执行语句块内容,依次类推直到表达式不成立跳出goto循环

    2, while循环

        while (1/*表达式*/) {
            printf("%d
    ",1);/*语句块*/
        }

      执行过程:

      1、首先判断表达式是否成立,如果不成立,跳出/结束整个循环,如果成立那么执行语句块的内容,语句块的内容执行完之后

      2、再次判断表达式是否成立,如果成立继续执行语句块内容,依次类推直到表达式不成立跳出循环

    3, do...while循环

       do {
            printf("%d
    ",1);/*语句块*/
        } while(1/*表达式*/);

      执行过程:

      1、程序直接执行语句块的内容一次(和while的区别)

      2、然后判断表达式是否成立,如果不成立,跳出/结束整个循环,如果成立那么执行语句块的内容,语句块的内容执行完之后

      3、再次判断表达式是否成立,如果成立继续执行语句块内容,依次类推直到表达式不成立跳出循环

     

    4, for循环 

        for (int i=0/*初始化语句*/; i<100/*表达式2*/; i++/*表达式3*/) {
            printf("%d
    ",i);/*语句块 写重复操作 可以是任何的语句;普通语句/if的所有语句结构/switch case 语句/循环语句*/
        }

      执行过程:  (初始化语句往往用于初始化循环的一些变量)

      1、首先执行初始化语句,(初始化语句,在整个for循环开始的时候执行一次)

      2、判断表达式2是否成立,如果表达式成立(表达式的值是非0值),那么执行语句块的内容,执行完语句块跳到第3步。否则(表达式不成立)那么结束整个for循环(跳出整个for循环)

      3、执行表达式3,接着跳到第2步

     

    5, 循环的拓展

    1、关键字 break

      break  跳出包含break的循环 

      break  可以出现在switch和循环

    2、关键字 continue

      continue  只能用于循环

      continue  结束本次循环,继续下次循环

    3、循环的特殊写法

      跳出里层循环

        for (;;) {
            for (int i = 0;i<100;) {
                break;//跳出里面的for循环
            }
        }
    

      死循环

        for(;;) {
            /*语句块*/
        }
        while (1) {
            /*语句块*/
        }
    

      等同于while的循环

         for(;表达式;) {
            语句块;
        }
        while (表达式) {
            语句块;
        }

     

     

  • 相关阅读:
    [转]: 浅谈Java中的equals和==
    易忘易混的java基本概念
    mysql查看锁表锁进程
    [转] Python 包管理工具解惑
    双网卡单网关的路由问题
    [转]火狐 SSL 收到了一个弱临时 Diffie-Hellman 密钥
    Linux中如何进入减号开头的目录中
    zabbix的一点记录
    从图形界面配置zabbix
    调用API自动配置zabbix version 3.0
  • 原文地址:https://www.cnblogs.com/markstray/p/5578045.html
Copyright © 2011-2022 走看看