关系表达式和逻辑表达式.ppt

上传人:sh****n 文档编号:16566449 上传时间:2020-10-13 格式:PPT 页数:18 大小:1,020KB
返回 下载 相关 举报
关系表达式和逻辑表达式.ppt_第1页
第1页 / 共18页
关系表达式和逻辑表达式.ppt_第2页
第2页 / 共18页
关系表达式和逻辑表达式.ppt_第3页
第3页 / 共18页
点击查看更多>>
资源描述
C语言程序设计 关系表达式和逻辑表达式 术语“ 控制流 ”( Flow Of Control)是指程序语句执行的 顺序 。除非特别指定,否则所有程序的正常控制流都是顺序的 (这意味着每个语句都是顺序执行的,一个接一个地按照它们 在程序中的顺序执行)。 选择语句和重复(循环)语句都允许程序员改变控制流的 正常顺序,正如它们的名称所暗示的,选择语句提供了从一组 设计良好的语句组中选择接下来将要执行的语句的能力;而重 复语句提供了转回来重复执行一组语句的能力。 所有的程序都由这这三种( 顺序、选择、循环 )控制结构 构成,这就是结构化程序设计中的一个重要原则。 控制流 ( 程序流 ) A B 顺序结构 顺序流程意味着每个语句都是顺 序执行的,一个接一个地按照它们在 程序中的顺序执行,且只执行一次。 A P B Y N 选择 ( 分支 ) 结构 选择(分支)结构提供了 从一组设计良好的语句组中选 择接下来将要执行的语句的能 力 P A Y N 循环结构 循环结构提供了转回来重复执行 一组语句的能力。 在我们编写程序的时候,需要控制程序根据条件来选择执 行相关的操作。很多时候,需要判断的条件往往不止一个,比 如从键盘输入一个数,我们要判断它是否大于 0,并且小于 10, 这里的“大于”,“小于”就是关系运算,“并且”就是逻辑 运算。 C语言为我们提供了 逻辑运算 和 关系运算 ,用它们构成复 杂的控制条件,来实现程序的选择结构和循环结构。 程序设计条件的表示 关系运算和我们数学中的比较运算基本一致,它们用于两 个操作数(整数、浮点数、字符数据)的比较。 C语言为我们提供了 6种关系运算符: 关系运算符和关系表达式 关系运算符 意义 示例 小于 age 大于 height 5.2 = 大于等于 taxable = 20000 = 98.6 = 等于 class = b != 不等于 number != 250 关系运算符都双目运算符,满足从左到右的结合律。它们的 优先关系如下: 1、关系运算符的优先级要低于算术运算符。比如语句: c=b+2;则先计算 b+2 的值,再和 c比较。 2、关系运算符的优先级高于赋值运算符。比如语句 “ a=bc;”,先进行关系运算“ bc”,成立(真),则 bc值为 1,不成立(假),则 bc值为 0;然后再做赋值运算,把 1或 0赋 值给 a。 3、关系运算符 、 =、 、 =的优先级要高于 =、 !=的优 先级,同级之间优先级相同。比如语句“ ca!=b;”,先计算 “ ca”,再算“ !=”的值,等价于“ (c=60”表达式是否为真,为真其就是 1,为假就是 0。 当 score = 86,“ score=60”为“真”,表达式的值为 1; 当 score = 54,“ score=60”为“假”,表达式的值为 0; 总结来讲,关系表达式的值只有两种可能:关系成立,则关 系表达的值为“真”( 值为 1);关系不成立,则关系表达式的 值为“假”( 值为 0)。 在 C语言中用非 0 值表达“真”,用 0 表达“假”。 关系表达式 想要判断整数 sum 的取值是否满足: 0sum 100;千 万不能写成“ 0=sum=0 并且 sum13 & d20 逻辑或(或者,二者只要具备其一) a13 | b20 ! 逻辑非(条件不成立,取反) !a 逻辑 与 运算符 &是用于两个关系表达式时,只有当每个表达 式都为 “真 ”时该条件才为 “真 ”。 逻辑 或 运算符 |也是用于两个表达式的,只要两个表达式至 少有一个是 “真 ”,该条件就为 “真 ”。 非 运算符 !将把表达式更改为它的相反状态,也就是就,如果 表达式为 “真 ”,那么它的非运算的值就为 “假 ”;如果表达式开始 为 “假 ”,那么它的非运算的值就为 “假 ”。 前面表格中的“ a13 & d20 ” 就是逻辑表达式, 逻辑表达式的值取 1(真),或者 0(假)。 一个逻辑表达式可以包含多个逻辑运算符,它们的优先级 顺序是:“ !”的优先级最高,“ &”次之,“ |”的优先级最 低。逻辑运算符“ &”、“ |”的优先级低于所有关系运算符, 而“ !”的优先级高于所有算术运算符。 逻辑表达式 使用 C的关系运算表达式可能会遇到与浮点数(单精度或双 精度)相关的微妙的数学精度问题。因为计算机存储这些数据的 方式不同,所以应该避免使用关系运算符“ =”来衡量浮点数的 等同关系,原因是,很多十进制小数(例如: 0.1)不能使用有 限的位数精确地以二进制表示,因此,要测试这些数字的完全等 同关系将会失败。当需要测试非整数值的等同关系时,最好要求 运算对象之差的绝对值小于一个非常小的值,因此,对于实际的 运算对象,常规表达式 operandOne = operandTwo 应该被下面的条件所取代 fabs(operandOne-operandTwo) EPSILON 其中 EPSILON 是一个被设置为任意可接受的足够小的值 (如 0.0000001或其他用户选定的值)的命名常量。因此,如果 两个运算对象之差小于 EPSILON的值,那么这两个运算对象被认 为是最基本相等。 数学的精度问题 例: 如果 x和 y是浮点变量,那么条件 x/y = 0.35 应该以下面的方式来编程: abs(x/y-0.35) 98.6 一个人的身高小于 6英尺 height 6 语文成绩 80分以上或且数学成绩 80分以上(含 80分) chinese=80 | math=80 目前为 1月 15日 month=1 & day=15 0 x100 x=0 & x5 | x25 年份为闰年 (year%4=0 & year%100!=0) | year%400=0 编写条件的练习 ( 二 ) 整数 x大于 5 x5 或 x=6 e不等于 0(不为空) e!=0 或 e e为 0( e为空) e=0 或 !e 编写条件的练习 ( 三 ) 确定下列表达式的值(假设 a=5, b=2, c=4, d=5) 1、 a = 5 1 2、 b*d = c*c 0 3、 d % b * c 5 | c % b * d 7 1 求解表达式的值
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!