关系表达式和逻辑表达式.ppt_第1页
关系表达式和逻辑表达式.ppt_第2页
关系表达式和逻辑表达式.ppt_第3页
关系表达式和逻辑表达式.ppt_第4页
关系表达式和逻辑表达式.ppt_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计 关系表达式和逻辑表达式 术语 控制流 FlowOfControl 是指程序语句执行的顺序 除非特别指定 否则所有程序的正常控制流都是顺序的 这意味着每个语句都是顺序执行的 一个接一个地按照它们在程序中的顺序执行 选择语句和重复 循环 语句都允许程序员改变控制流的正常顺序 正如它们的名称所暗示的 选择语句提供了从一组设计良好的语句组中选择接下来将要执行的语句的能力 而重复语句提供了转回来重复执行一组语句的能力 所有的程序都由这这三种 顺序 选择 循环 控制结构构成 这就是结构化程序设计中的一个重要原则 控制流 程序流 顺序结构 顺序流程意味着每个语句都是顺序执行的 一个接一个地按照它们在程序中的顺序执行 且只执行一次 选择 分支 结构 选择 分支 结构提供了从一组设计良好的语句组中选择接下来将要执行的语句的能力 循环结构 循环结构提供了转回来重复执行一组语句的能力 在我们编写程序的时候 需要控制程序根据条件来选择执行相关的操作 很多时候 需要判断的条件往往不止一个 比如从键盘输入一个数 我们要判断它是否大于0 并且小于10 这里的 大于 小于 就是关系运算 并且 就是逻辑运算 C语言为我们提供了逻辑运算和关系运算 用它们构成复杂的控制条件 来实现程序的选择结构和循环结构 程序设计条件的表示 关系运算和我们数学中的比较运算基本一致 它们用于两个操作数 整数 浮点数 字符数据 的比较 C语言为我们提供了6种关系运算符 关系运算符和关系表达式 关系运算符都双目运算符 满足从左到右的结合律 它们的优先关系如下 1 关系运算符的优先级要低于算术运算符 比如语句 c b 2 则先计算b 2的值 再和c比较 2 关系运算符的优先级高于赋值运算符 比如语句 a b c 先进行关系运算 b c 成立 真 则b c值为1 不成立 假 则b c值为0 然后再做赋值运算 把1或0赋值给a 3 关系运算符 的优先级要高于 的优先级 同级之间优先级相同 比如语句 c a b 先计算 c a 再算 的值 等价于 c a b 4 除了数学运算对象之外 还可以使用关系运算符来比较字符数据 char值将被强制转换成int值以进行比较 5 不能直接使用关系运算符比较字符串 关系运算符的运算 关系表达式就是用关系运算符把两个表达式连接起来的式子 它的一般形式是 表达式1关系运算符表达式2例如 判断一个学生成绩是否及格 定义变量 score表示学生成绩 判断 score 60 表达式是否为真 为真其就是1 为假就是0 当score 86 score 60 为 真 表达式的值为1 当score 54 score 60 为 假 表达式的值为0 总结来讲 关系表达式的值只有两种可能 关系成立 则关系表达的值为 真 值为1 关系不成立 则关系表达式的值为 假 值为0 在C语言中用非0值表达 真 用0表达 假 关系表达式 想要判断整数sum的取值是否满足 0 sum 100 千万不能写成 0 0并且sum 100来表达 也就是说 除了使用关系表达式表示简单的条件以外 还可以使用逻辑运算与 或 非来创建更为复杂的条件 逻辑运算符和逻辑表达式 C语言的逻辑运算符有3种 逻辑运算符 逻辑与运算符 是用于两个关系表达式时 只有当每个表达式都为 真 时该条件才为 真 逻辑或运算符 也是用于两个表达式的 只要两个表达式至少有一个是 真 该条件就为 真 非运算符 将把表达式更改为它的相反状态 也就是就 如果表达式为 真 那么它的非运算的值就为 假 如果表达式开始为 假 那么它的非运算的值就为 假 前面表格中的 a 13 d 20 就是逻辑表达式 逻辑表达式的值取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 0 0000001其后面的条件可以确保以二进制非整数数字所带来的少量误差不会影响到测试条件的赋值结果 数学的精度问题举例 编写用来表示下列条件的关系表达式或逻辑表达式 使用你自己选择的变量名 一个人的年龄为30岁age 30 一个人的体温大于98 6华氏度heat 98 6 一个人的身高小于6英尺height 6 0 目前为12月month 12 输入的字母为mkey m 编写条件的练习 一 一个人的年龄为30岁且身高大于6尺age 30 height 6 语文成绩80分以上或且数学成绩80分以上 含80分 chinese 80 math 80 目前为1月15日month 1 day 15 0 x 100 x 0 x5 x25 年份为闰年 year 4 0 year 100 0 year 400 0 编写条件的练习 二

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论