第7讲-双路分支程序设计.pps

上传人:本田雅阁 文档编号:2259876 上传时间:2019-03-12 格式:PPS 页数:27 大小:2.26MB
返回 下载 相关 举报
第7讲-双路分支程序设计.pps_第1页
第1页 / 共27页
第7讲-双路分支程序设计.pps_第2页
第2页 / 共27页
第7讲-双路分支程序设计.pps_第3页
第3页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第7讲-双路分支程序设计.pps》由会员分享,可在线阅读,更多相关《第7讲-双路分支程序设计.pps(27页珍藏版)》请在三一文库上搜索。

1、主讲教师:葛日波,第7讲 分支程序设计-1,邮箱: 电话: 0411-62786172,知 识 回 顾,1.副作用与表达式求值,3.常用库函数,隐式类型转换 强制类型转换,2.混合表达式与数据类型转换,4.简单程序设计,问 题 引 出,1.简单的程序设计情况比较简单、顺序执行,2.现实问题不可能如此简单,试回顾上次课最后的程序,如果用户在运行程序后输入一个负数,会发生什么事情呢? 回答是:程序仍将执行,并给出了一个错误的结果,显然程序是存在缺陷的 解决的办法:在设计程序时,应该考虑输入的是正数还是负数的不同情况有选择地进行不同处理 这就是本次课要研究的分支程序设计,主 要 内 容,3.1 关

2、系与逻辑运算,3.1.1 逻辑数据,3.1.2 关系运算,3.1.3 逻辑运算,目的要求,复习思考题,3.2 两路分支,3.2.1 ifelse语句,3.2.2 if语句,3.2.3 if语句的嵌套,3.2.4 条件表达式,3.1 关系与逻辑运算,3.1.1 逻辑数据,1.用来表示“真”和“假”的数据称为逻辑数据,2.C中没有逻辑类型,它用其它类型来表示逻辑型数据,3.1.1 逻辑数据,3.C中规定,0值表示“假”,非0值表示“真”,(1)也叫比较运算,用来比较两个值的大小,结果是逻辑值,3.1.2 关系运算,3.1.2 关系运算,(2)C中有6种关系运算,(1)关系运算是二元运算,对两个值进

3、行大小比较,2.注意事项,2.注意事项,(2)任意类型的表达式都可以参加比较运算,若有下面的定义: int m, n; int a = 1, b = 2; float y = 5, z; 则下列的表达式都是合法的:,5 3 /* 两个初级表达式(常量)比较 */ y = b+ /* 一元表达式与后缀表达式进行比较 */ (m = 4) = (n = 3) /* 两个赋值表达式进行比较 */ (y 3) 5) /* 两个关系表达式进行比较 */,(3)关系运算的结果是逻辑值“真”或“假”,(4)若结果为“真”则值是1;若结果为“假”则值是0,若有下面的定义: int a = 3,b = 2, x

4、 = 5; 则下列的表达式:,5 3 结果为“真” 值为 1 x = b+ 结果为“真” 值为 1,(5)前四个的优先级高于后两个,结合性都是左结合,a = b c 等价于 a = (b c) a b c 等价于 (a b) c),(6)不可以简单地通过几个连续的关系运算来构建复杂的条件,3 x 5 不能表示x(3,5),(1)逻辑运算是对逻辑值进行的运算,结果还是逻辑值,3.1.3 逻辑运算,1.逻辑运算概述,(2)C中有3种逻辑运算,3.1.3 逻辑运算,1.逻辑运算概述,(1)逻辑运算是对逻辑值实施的运算,结果还是逻辑值,2.注意事项,2.注意事项,(2)任意类型的表达式都可以参加逻辑运

5、算,若有下面的定义: int a = 0, b = 13; float y = -3.14; char c = A; 则下列的表达式都是合法的:,!5 结果为“假” 值为0 !a 结果为“真” 值为1 !y 结果为“假” 值为0 !(b % 2) 结果为“假” 值为0 a = 0 & a =a&c=A&c=Z) 结果为“真”值为1,(3)逻辑短路问题:只要表达式的值已经确定逻辑运算就终止,若有以下定义: int a = 1, b = 2, c = 3, d = 4, m = 2, n = 2;,问: 执行以下的语句后,m和n的值各是多少?,(m = a b) ,(4)关系运算的互补问题,关系运

6、算之间存在互补 存在互补关系的运算,只要对一个取非运算就和另一个等价 编程时应尽量选择简单的格式 基本原则是: 能用关系运算表示的,就不要再进行逻辑运算,3.2 两路分支,1.分支又叫选择,它是一种程序结构,2.两路分支是根据某一条件,有选择地执行两部分代码的一个,3.2.1 ifelse语句,1.语句结构和流程图,3.2.1 ifelse语句,1.语句结构和流程图,2.注意事项,2.注意事项,(1)if后的括号不能省略,括号后不能有分号,(2)expression可以是任意类型的表达式,(3)s1和s2是语句,它们可以是一条语句、空语句或多条语句,若为多条语句就必须使用括起来,(4)由于存在

7、互补关系,用不同的表达式就有不同的程序格式,3.2.2 if语句,1.语句结构,3.2.2 if语句,1.语句结构,(1)if语句是ifelse语句的特例,(2)等价于条件为“假”时什么也不做,2.注意事项,(1)if语句同样可以利用互补关系表示为不同格式,(2)编程时要尽量使用简单的格式,2.注意事项,3.2.3 if语句的嵌套,1.语句结构与流程图,if.else语句中又含有其它if.else语句,3.2.3 if语句的嵌套,1.语句结构与流程图,(1)C对嵌套的层数没有要求,但一般不要超过三层,2.注意事项,2.注意事项,(2)在嵌套结构中,一定要注意if与else的配对关系,(3)可以

8、通过加来改变if与else的配对关系,3.2.4 条件表达式,(1)由两个运算符(?和:)把三个操作数连接而成的式子,1.条件表达式概述,3.2.4 条件表达式,1.条件表达式概述,(2)它是C中唯一一个三元表达式,(3)表达式的一般形式,表达式1 ? 表达式2 : 表达式3,x = 5 ? y = x * x : y = x + x,(4)条件表达式的值是表达式2或表达式3中一个的值,(1)优先级是3,比赋值运算高,2.注意事项,2.注意事项,(2)三项条件表达式可以嵌套,flag = x % 2 ? 1 : 0;,flag = x 0 ? 1 : x 0 ? -1 : 0,目 的 要 求,1.理解C中逻辑数据的表示方法,2.掌握关系运算和逻辑运算种类和处理方法,4.掌握ifelse语句,if语句和嵌套结构的用法,3.理解逻辑短路的概念和意义,5.掌握条件表达式及其处理方法,复习思考题,*6.在ifelse嵌套结构中,if与else的配对原则是什么?,说明:题目前面的*代表问题的重要程度,*1.什么是逻辑数据? 在C中如何表示逻辑数据?,*2.在C中,关系运算有哪些? 使用中应注意什么?,*3.在C中, 逻辑运算有哪些? 使用中应注意什么?,*4.逻辑短路是什么?,*5.在if(e) s;和if(!e) s;中,s被执行的条件是什么?,*7.什么是条件表达式? 如何处理?,

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

当前位置:首页 > 其他


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