博客
关于我
程序结构和分支语句介绍
阅读量:732 次
发布时间:2019-03-22

本文共 2607 字,大约阅读时间需要 8 分钟。

程序的结构及分类

程序的结构化是一个设计思想,规定了一套方法,是程序具有合理的结构,以保证和验证程序的正确性。这种方法要求程序设计者不随心所欲地编写程序,而要按照一定的结构形式来设计和编写程序。其重要目的是使程序具有良好的结构,使程序易于设计、易于理解、易于调试修改,从而提高设计和维护程序工作的效率。

程序的结构化可以划分为三种主要结构:顺序结构、选择结构和循环结构。

顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。

选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择执行其中的一个分支。C语言中的选择结构主要包括if语句和switch语句。

循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的问题是:什么情况下执行循环?哪些操作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环。

当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。因为是"当条件满足时执行循环",即先判断后执行,所以称为当型循环。

直到型循环:表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处。因为是"直到条件为真时为止",所以称为直到型循环。

选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。

if语句介绍

形式一(if):如果表达式为真,则执行语句块1,否则不执行。

形式二(if...else...):如果表达式为真则执行语句块1,否则执行语句块2。

形式三(if...else if...else...):从表达式1开始往下判断,当表达式为真就执行该表达式对应的语句块,例如从表达式1开始判断一直到表达式n才出现表达式的值为真,那么就执行语句块n中的内容。当语句块执行结束后跳出整个if语句。如果表达式1到表达式n的值都为假则执行else后面的语句块n+1。

形式四(if 语句的嵌套):if语句中根据需要还可以嵌套if语句。

使用if语句时需要注意以下几点:

  • if(表达式);如果后面跟空语句,表示如果表达式的值为真则什么也不干。

  • if(表达式) return 0;函数不会往下执行了,直接退出。一个函数可以有多个return,但只有一个起作用。

  • if(非零常量) 表示永真,如果(0) 表示永假,没有实际意义。

  • 遇到省略大括号的if语句,从下往上依次匹配else。

  • switch语句介绍

    又称开关语句。switch语句的执行流程是计算表达式的值,并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

    switch语句的形式是:

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

    switch语句的值得注意的地方:

  • 表达式的类型(case语句后的值)的必须是整型或可以转变为整型的值(byte、short、char和int类型)。

  • 功能代码部分可以写任意多句。

  • case语句可以有任意多句,可以不用加括号“{}”。

  • break关键字的意思是中断,指结束switch语句,break语句为可选。

  • case值得注意的地方:

    a. case的值必须是常数或常量,不能为变量。

    b. case的值必须是整数,不能为浮点数。

    c. case后面不可以直接定义变量。

    d. case后面定义的变量必须加上大括号。

    e. default语句可以写在switch语句中的任意位置,功能类似于if语句中的else,但写在最上面会重新一次往下执行,default语句执行后不会跳出switch语句,需要使用break语句才会跳出。default语句写在最后省略break语句不影响。

  • switch语句的执行流程是:

    在执行的过程中,如果遇到break语句,则跳出switch语句。如果没有遇到break语句,则一直执行到switch语句的结束。

    循环语句介绍

    在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。

    while循环

    while结构循环为当型循环(when type loop),一般用于不知道循环次数的情况。维持循环的是一个条件表达式,条件成立执行循环体,条件不成立退出循环。

    一般形式:

    while (表达式) { 循环体; }

    do...while循环

    do…while语句结构为直到型循环(until type loop),也用于不知道循环次数的情况。do…while和while的区别在于do…while结构是执行完一遍循环体再判断条件。

    一般形式:

    do { 循环体; } while (表达式); (注意最后的分号)

    for循环

    for为当型循环语句,它很好地体现了正确表达循环结构应注意的三个问题:控制变量的初始化、循环的条件、循环控制变量的更新。

    for表达式包括:

    表达式1:一般为赋值表达式,给控制变量赋初值; 表达式2:关系表达式或逻辑表达式,循环控制条件; 表达式3:一般为赋值表达式,给控制变量增量或减量。

    for语句格式为:

    for (表达式1;表达式2;表达式3) { 循环体; }

    for语句执行过程如下:

    ①先对表达式1赋初值; ②判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为假,不满足条件,就终止for循环,执行循环体外语句。

    转载地址:http://bruwk.baihongyu.com/

    你可能感兴趣的文章
    mt_rand
    查看>>
    mysql -存储过程
    查看>>
    mysql /*! 50100 ... */ 条件编译
    查看>>
    mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
    查看>>
    mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
    查看>>
    mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
    查看>>
    mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
    查看>>
    MySQL 8.0 恢复孤立文件每表ibd文件
    查看>>
    MySQL 8.0开始Group by不再排序
    查看>>
    mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
    查看>>
    multi swiper bug solution
    查看>>
    MySQL Binlog 日志监听与 Spring 集成实战
    查看>>
    MySQL binlog三种模式
    查看>>
    multi-angle cosine and sines
    查看>>
    Mysql Can't connect to MySQL server
    查看>>
    mysql case when 乱码_Mysql CASE WHEN 用法
    查看>>
    Multicast1
    查看>>
    mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
    查看>>
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>