第4章-选择结构程序设计.ppt

上传人:本田雅阁 文档编号:2979598 上传时间:2019-06-17 格式:PPT 页数:71 大小:469.01KB
返回 下载 相关 举报
第4章-选择结构程序设计.ppt_第1页
第1页 / 共71页
第4章-选择结构程序设计.ppt_第2页
第2页 / 共71页
第4章-选择结构程序设计.ppt_第3页
第3页 / 共71页
第4章-选择结构程序设计.ppt_第4页
第4页 / 共71页
第4章-选择结构程序设计.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《第4章-选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第4章-选择结构程序设计.ppt(71页珍藏版)》请在三一文库上搜索。

1、,第4章 选择结构程序设计,本章的目的是,学习选择结构程序的设计方法。,4.1 关系运算符及关系运算表达式,关系运算符是用来确定一个量与另一个量之间的关系,主要是比较两个量的大小,所以关系运算符也叫做比较运算符。C语言提供6种关系运算符,如表4-1所示。,关系运算的结果是一个逻辑值。逻辑值是一种只有两个值的量:真和假。关系运算的结果成立,或者说为真(true),则运算结果为1,也就是用1表示真。比较的结果不成立,或者说为假(false),则运算结果为0,也就是用0表示假。,在表4-1所示的6种关系运算符中,前4种(,=,=)的优先级是相同的,后两种(= =,!=)的优先级相同。前4种的优先级高

2、于后两种。,关系运算符的结合性为自左向右。关系运算符的优先级高于赋值运算符,低于算术运算符。,关系运算可以用于任何基本数据类型的变量或常量。由关系运算符连接表达式构成的表达式,称为关系表达式。其一般形式为: 表达式 关系运算符 表达式,关系运算和数学中的比较运算有所不同。,4.2 逻辑运算符及逻辑表达式,逻辑运算符用于支持基本逻辑运算。 C语言提供3种基本逻辑运算:逻辑与(AND)、逻辑或(OR)和逻辑非(NOT)。,它们的运算符分别为&,|,!。前两种逻辑操作要求有两个操作数(双目运算),逻辑非是单操作数的运算(单目运算)。3种逻辑运算符、意义和运算规则如表4-2所示。,逻辑运算是对逻辑量或

3、表达式进行运算的。逻辑运算的对象可以是数值型的、字符型的,也可以是逻辑量。,C语言规定,逻辑运算的运算对象为0时,代表逻辑量假;运算对象为非0时,代表逻辑量真。逻辑运算的结果仍是逻辑量:真或假。因为逻辑量的值为1或0,所以,在运算中,逻辑值也可以看作是整型数。 表4-3所示为3种逻辑操作的真值表。,逻辑操作符和关系操作符的优先级由高到低,如图4-2所示。,图4-2 逻辑运算与关系运算的优先级,逻辑运算符和关系运算符的运算优先级都低于算术运算符。 由逻辑运算符连接表达式构成的表达式,称为逻辑表达式。逻辑表达式和关系表达式常用于选择结构和循环结构程序中。,255 & !(87) | 2=10 根据

4、上述的关系运算和逻辑运算的意义以及运算符的优先级,不难知道该表达式的值为真。这可以从图4-3清楚地看出。,图4-3 逻辑操作举例,关于逻辑运算,有一点要特别说注意:当对两个表达式进行逻辑与运算时,若前一个表达式的值为假,则不再进行后一个表达式的计算,整个表达式的值肯定为假。同样,当对两个表达式进行逻辑或运算时,若前一个表达式的值为真,整个表达式的值肯定为真,也不再进行后一个表达式的计算。,4.3 选 择 语 句,选择语句是用于构造选择程序结构的语句。C语言提供两种类型的选择语句:if语句和switch语句。,4.3.1 单分支if选择语句 if选择语句也称为条件转移语句。它有两种形式:单分支形

5、式和双分支形式。单分支if选择语句是形式最简单的if条件转移语句,它的格式如下: if(表达式) 语句;,其中if是分支语句的关键字,其中“语句”可以是任何语句。 if选择语句的功能是,首先计算“表达式”的值,如果表达式的值为真,则执行“语句”,否则不执行,而是转去执行本语句后面的语句。单分支if语句的流程图如图4-4所示。,图4-4 单分支if语句的流程,要强调说明的是,if语句中表达式可以任何类型的C表达式。例如,可以是算术表达式,赋值表达式。但最常用的是关系表达式和逻辑表达式。,其中语句也可以是任何语句,包括另一个if语句(称嵌套if语句);也可以是由若干语句组成的一个语句组。在这种情况

6、下,这组语句需要用花括号“ ”括起来。,用花括号括起来的一组语句,在语法上当作一个语句看待。这样的语句在C语言中叫做语句块,或复合语句。实际上语句块是比函数更小的程序单元(模块)。,4.3.2 双分支if_else选择语句 if_else语句的格式为: if(表达式) 语句块1; else 语句块2;,语句的功能是,首先计算表达式的值,如果为真,则执行语句(块)1,否则执行else后面的语句(块)2。上述功能如图4-5所示。,图4-5 双分支if_else选择语句流程,【例4-7】 比较用户输入的两个整数的大小。若输入的第1个数大于第2个数,则显示: firstsecond 否则,显示: fi

7、rst= second 最后,显示: All done!,显然,这是一个有两个分支的程序。用图4-6所示的流程图说明编程的思想。,图4-6 例4-7程序的流程图,4.3.3 多分支结构 如果在if选择语句的一个或两个分支语句中,还包含有if语句,则称这种结构为“if语句的嵌套”。利用if语句的嵌套,可以构成两个以上分支的多个分支的选择结构程序。,其中常用的一种结构是,在else后面的语句中包含有另一个if语句,这种多分支选择结构如图4-7所示。图中用3个if_else_if语句组成了4个分支。我们也把这种语句组合称为if_else_if选择结构。,图4-7 if_else_if选择语句流程,一

8、般情况下,只要在一个if语句中包含有另一个if语句就是if语句的嵌套,组成的就是多分支的选择结构程序。,if(表达式1) if(表达式2) 语句1 else 语句2 else if(表达式3) 语句3 else 语句4 ,图4-8所示为这种分支结构的流程图。,图4-8 多分支if语句结构流程图,C语言对语句在程序中书写形式没有严格的要求。一行可以写多个语句,也可以把一个语句写在两行里。一个语句可以从一行的头开始写,也可以从一行的某个位置开始写。,为了使嵌套结构清楚、醒目并避免产生错误的理解,建议各层嵌套的语句采用不同的缩进书写形式,如上面所写的那样。必要时,使用花括号也会使是程序的嵌套结构显示

9、得更清晰。,4.3.4 多分支开关语句switch if语句是靠嵌套来实现多分支结构的。多分支开关语句switch则可以直接构成多个分支。在许多情况下,switch语句非常适合构造多分支选择结构程序。,switch语句的一般格式为: switch(表达式) case 常量表达式1: 语句(块)1 break;,case 常量表达式2: 语句(块)2 break; ,case 常量表达式n: 语句(块)n break; default: 语句(块)n+1 ,语句中的switch,case和default是语句组成中的关键字。switch后面的“(表达式)”可以是任何类型,通常是字符型或整型表达式

10、。“常量表达式1”“常量表达式n”是整型或字符型的。,所有常量表达式的值必须是互不相同的。break语句和default(特殊的case)是任选的,switch语句中可不包含它们。Break语句的作用是结束switcn语句的执行。,Default的作用是,如果所有常量表达式的值都与表达式的值不同,则执行语句(块)n+1。语句(块)1语句(块)n+1中的语句可以是任何语句。也可是另一个switch语句,这种情况称为嵌套的swtch语句。,首先,计算switch后圆括号内的表达式的值,然后,用这个值逐个与各case的常量表达式i的值进行比较。当找到与其相等(匹配)的case时,就执行该case中的

11、语句(块)i,如果在语句(块)i中有break语句,便退出该switch语句。,如果没有break语句,则在执行完某个语句(块)i后,连续执行其后的语句(块),直到遇上另一个break语句,结束switch的执行,或者一直执行到最后的语句(块),然后,结束switch语句的执行。 switch语句的上述功能如图4-9所示。,图4-9 switch语句的流程,default在语句中出现的次序,对程序的执行结果是没有影响的。把default放在语句的最后是一个好的习惯。,执行完一个case的语句后,只要没有break语句,switch语句就会自动执行下一个case。因此,case中的break语句

12、是根据程序的需要选用的。,4.4 选择结构程序设计,4.5 条件运算符,条件运算符由3个运算对象及两个符号“?”和“:”组成。它的格式为: EXP1 ? EXP2: EXP3这里EXP1,EXP2,EXP3是3个表达式。,第1个表达式EXP1可以是任何类型的表达式,其作用通常是被看作逻辑表达式,即它的值理解为真(非0)或假(0值)。EXP2和EXP3是两个类型相同的表达式。,由条件运算符组成的表达式叫做条件运算表达式。,条件运算的功能是:如果表达式EXP1的值为真,则取表达式EXP2的值为条件运算表达式的值;如果表达式 EXP1的值为假,则取表达式EXP3的值作为条件运算表达式的值。条件运算的

13、流程如图4-11所示。,图4-11 条件运算符“?”操作的流程,从上述的功能看,条件运算符的作用,很像如下的if语句块: if(EXP1) EXP2; else EXP3;,所以,利用条件运算符可以实现一些简单的分支。因此,条件运算表达式也称为分支表达式。 但必须注意到,在条件运算格式中,EXP1,EXP2和EXP3必须是表达式,不能是语句。,条件运算符的优先级高于赋值运算,低于算术运算符、关系运算符和逻辑运算符。结合性是自右向左的。,小 结,本章主要讲了以下几个问题: (1)关系运算符和关系运算表达式; (2)逻辑运算符和逻辑运算表达式;,(3)条件运算符和条件运算表达式; (4)构成选择结构语句和选择结构程序的设计。,对于逻辑运算和关系运算,要掌握各运算符的写法,运算规则,优先级及结合性等。对于if语句switch语句,除了牢记它们的书写格式和功能外,要通过例题学习、做习题和上机操作,掌握解题(编程)的思路,能举一反三。不要死记硬背。,在程序设计的学习中,从一开始就养成一个良好编程习惯,是很重要的。首先是严紧,每个语句都有严格、明确的语法格式,语句中不允许有一点不符合语法的地方。,其次,书写程序要结构清晰,要养成使用缩进格式和正确使用花括号的习惯。这不仅使程序思想条理清楚,也能避免程序中的许多容易发生的错误。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1