C语言程序设计 教学课件 ppt 作者 李丽娟 等 第4章_分支结构

上传人:E**** 文档编号:89381935 上传时间:2019-05-24 格式:PPT 页数:31 大小:274KB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 李丽娟 等 第4章_分支结构_第1页
第1页 / 共31页
C语言程序设计 教学课件 ppt 作者 李丽娟 等 第4章_分支结构_第2页
第2页 / 共31页
C语言程序设计 教学课件 ppt 作者 李丽娟 等 第4章_分支结构_第3页
第3页 / 共31页
C语言程序设计 教学课件 ppt 作者 李丽娟 等 第4章_分支结构_第4页
第4页 / 共31页
C语言程序设计 教学课件 ppt 作者 李丽娟 等 第4章_分支结构_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 李丽娟 等 第4章_分支结构》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 李丽娟 等 第4章_分支结构(31页珍藏版)》请在金锄头文库上搜索。

1、第三部分 C语言的结构语句 第4章 选择结构,4.1 if 语句,4.1.1 单分支if语句 它的一般格式如下: if(表达式) 语句; 说明:对条件表达式进行判断,若其值为“真(非0)”时执行语句,若其值为“假(0)”时则跳过语句。其执行过程见流程图4.1。,例如:设定学生成绩60分为及格分数线,用单分支if语句描述为: if ( grade = 60 ) printf ( “passedn ” ) ; 又如:x大于y就输出x,用单分支if语句描述为: if ( x y ) printf ( “%d ”, x ) ;,4.1.2 双分支if语句,它的一般格式如下: if (表达式) 语句1;

2、 else 语句2; 说明:与单分支if语句不同的是在条件为“真(非0)”或“假(0)”时执行指定的不同的操作。对条件表达式进行判断,若其值为“真(非0)”时,就执行语句1;若其值为“假(0)”时,就执行语句2。其执行过程见流程图4.2。,例如:给学生成绩划分:成绩大于或等于60分时输出“passed”,成绩小于60分时输出“failed”。用双分支if语句描述为: if ( grade = 60 ) printf ( “passedn ” ) ; else printf ( “failedn ” ) ;,在前面的章节还提到过与if / else结构密切相关的条件运算符 ?:,它是C语言中唯一

3、的三目运算符(即有三个操作数)。对上面的两例用条件运算符改写为: grade = 60 ?printf ( “passedn ” ) :printf ( “failedn ” ) ; x y ?printf ( “%d ”, x ) :printf ( “%d ”, y ) ; 由此说明适当的语句修改条件运算符可以完成if / else结构相同的功能。,说明: 1.对于单分支和双分支if后面的“表达式”,一般为逻辑表达式或关系表达式,事实上表达式的类型不限于此,可以是任意的数值类型(包括整型、实型、字符型、指针型数据)。只要表达式的值为非0,就认为它为真;只要表达式的值为0,就认为它为假。 例

4、如: if ( 6 ) printf ( “passedn ” ) ; if ( A ) printf ( “%d ”, A ) ; 这些都是合法的if语句。 2.对于双分支if语句,else子句不能作为语句单独使用,它必须是if语句的一部分,与if配对使用。,3.if语句后面的表达式之后不能增加分号,同时注意语句后面的分号不能遗漏。 4.在if和else后面可以只包括一个内嵌的操作语句,也可以包括多个操作语句,此时务必用“”将几个语句括起来成为一个复合语句。 例如:if ( x 100 ) x- ; s=+x ; else x+ ; s=+x ; 此时又要注意:在“”后面不能再添加分号,因为

5、“”内是一个完整的复合语句,不需要再添加分号。,4.1.3 多分支if语句,对于解决判断多个条件的问题,可以使用if语句的嵌套,即在if语句中又包括一个或多个if语句。它的一般格式如下: if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; else if (表达式m) 语句m; else 语句n;,说明:开始执行该结构后,便依次去对多个条件进行判断测试,符合某一条件,则转去执行该条件下的操作,其它部分将被跳过;如果无一条件为“真(非0)”,就执行最后一个else所指定的操作,这个else可以看作“其它情形”。应当特别注意if与else的

6、匹配关系:规则是从最内层开始,else总是与它上面最近的(未曾配对的)if配对。其执行过程见流程图4.3。,【例4-1】编程实现给一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A等,8980分为B等,7970分为C等,6960分为D等,60分以下为E等。,【源程序】 main( ) int grade; printf ( “input the grade:“); scanf (“%d“, ,4.2 switch语句 4.2.1 switch语句,对于解决实际生活中例如人口统计分类、工资统计分类、银行存款分类等等的多分支选择问题,采用多分支if语句(即if语句的嵌套)来处理固然可

7、以,但是如果分支较多,则嵌套的if语句层数多,程序冗长而且会导致可读性降低。C语言提供了直接处理多分支选择的switch语句,它的一般格式如下:,switch ( 表达式 ) case 常量表达式1:语句1; case 常量表达式2:语句2; case 常量表达式n:语句n; default : 语句m; 说明:其执行过程为进入switch结构后,根据表达式的值从上到下去找与其相匹配的case,以此作为入口,执行其后面的各语句。,对【例4-1】用switch语句改写如下: 【源程序】 main( ) int grade; printf(“input the grade:“); scanf(“%

8、d“, ,【运行结果】 input the grade:98 A B C D E 说明:此时的结果并不是我们所希望得到的,也就是说根据switch后面表达式的值找到了相匹配的case分支后,就以此为入口执行后面的所有语句,而不再进行判断了。其流程图如图4.5。,4.2.2 break语句在switch结构中的运用,为了正确使用switch结构从多种结果中选择一种结果的功能,我们可以运用前面学过的break语句来达到此目的。对流程图4.5修改如下如图4.6:,【源程序】 main( ) int grade; printf(“input the grade:“); scanf(“%d“, ,说明:

9、 1. switch结构的执行部分是一个由一些case子句和一个可缺省的default子句组成的复合语句,特别注意要用一对“”括起来。 2. switch后面的表达式一般是整型表达式或字符型表达式,与之相对应的case后面的常量表达式也应是一个整型表达式或字符型表达式,但要注意case与常量表达式之间要有空格。例如:case 6+9 : printf( “ok” ) ;是合法的。,3.在执行switch语句时,根据其后表达式的值找相匹配的case子句,要注意“case 常量表达式”只是起语句标号的作用,并不是在该处进行条件判断。当找到相匹配的case子句即入口标号时,就从此标号开始执行后面的语

10、句。因此,应该在执行一个case子句后必须增加一条间断语句break来使流程跳出switch结构。如果未找到相匹配的case子句就执行default子句,若default子句放在最后其后可以不加break语句。 4.各个case子句出现的次序对执行结果没任何影响,即顺序可以任意布局。,5.每一个case能够拥有一条或多条语句,其最大的不同之处在于使用多条语句时不需要用“”括起来。 6.多个case可以共用一组执行语句。例如: case A: case a: +count ; break ; 成绩为大写字母A或小写字母a都进行累加求和。 7. switch结构中的case子句中的常量表达式的值不

11、允许相同。 8. switch结构允许嵌套。,4.3 实例解析,【例4-2】从键盘输入三个整数a、b、c,输出最大的一个。 【编程思路】 分析:可以先找出a与b之间的较大者,然后再将这个较大者与c比较找出较大者,则此数即为三个数中的最大数。,【源程序】 解法1: main() int a,b,c; printf(“input a,b,c:“); scanf(“%d,%d,%d“, ,解法2: main( ) int a,b,c,max; printf(“input a,b,c:“); scanf(“%d,%d,%d“, ,4.4 本章小结,本章主要介绍了if语句和switch语句这两中分支语句。if语句它又包括了三种类型:单分支if语句、双分支if语句和多分支if语句(即if语句的嵌套),特别注意在if语句的嵌套中if和else的匹配关系;switch语句主要用于对单条件进行测试,从其多种结果中取一种的情形,要注意在其case分支语句中使用间断语句break语句。在实际运用中,应根据具体的情况灵活使用这两种语句来解决问题。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号