关系表达式和逻辑表达式_第1页
关系表达式和逻辑表达式_第2页
关系表达式和逻辑表达式_第3页
关系表达式和逻辑表达式_第4页
关系表达式和逻辑表达式_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

关于关系表达式和逻辑表达式第1页,讲稿共18页,2023年5月2日,星期三术语“控制流”(FlowOfControl)是指程序语句执行的顺序。除非特别指定,否则所有程序的正常控制流都是顺序的(这意味着每个语句都是顺序执行的,一个接一个地按照它们在程序中的顺序执行)。

选择语句和重复(循环)语句都允许程序员改变控制流的正常顺序,正如它们的名称所暗示的,选择语句提供了从一组设计良好的语句组中选择接下来将要执行的语句的能力;而重复语句提供了转回来重复执行一组语句的能力。

所有的程序都由这这三种(顺序、选择、循环)控制结构构成,这就是结构化程序设计中的一个重要原则。§控制流(程序流)第2页,讲稿共18页,2023年5月2日,星期三§顺序结构顺序流程意味着每个语句都是顺序执行的,一个接一个地按照它们在程序中的顺序执行,且只执行一次。第3页,讲稿共18页,2023年5月2日,星期三§选择(分支)结构选择(分支)结构提供了从一组设计良好的语句组中选择接下来将要执行的语句的能力第4页,讲稿共18页,2023年5月2日,星期三§循环结构循环结构提供了转回来重复执行一组语句的能力。第5页,讲稿共18页,2023年5月2日,星期三在我们编写程序的时候,需要控制程序根据条件来选择执行相关的操作。很多时候,需要判断的条件往往不止一个,比如从键盘输入一个数,我们要判断它是否大于0,并且小于10,这里的“大于”,“小于”就是关系运算,“并且”就是逻辑运算。

C语言为我们提供了逻辑运算和关系运算,用它们构成复杂的控制条件,来实现程序的选择结构和循环结构。§

程序设计条件的表示第6页,讲稿共18页,2023年5月2日,星期三关系运算和我们数学中的比较运算基本一致,它们用于两个操作数(整数、浮点数、字符数据)的比较。

C语言为我们提供了6种关系运算符:§关系运算符和关系表达式关系运算符意义示例

<小于age<30

>大于height>5.2

>=大于等于taxable<=20000

<=小于等于temp>=98.6

==等于class==‘b’

!=不等于number!=250第7页,讲稿共18页,2023年5月2日,星期三关系运算符都双目运算符,满足从左到右的结合律。它们的优先关系如下:

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、不能直接使用关系运算符比较字符串。§

关系运算符的运算第8页,讲稿共18页,2023年5月2日,星期三关系表达式就是用关系运算符把两个表达式连接起来的式子,它的一般形式是:

表达式1关系运算符表达式2

例如,判断一个学生成绩是否及格。定义变量:score表示学生成绩,判断“score>=60”表达式是否为真,为真其就是1,为假就是0。当score=86,“score>=60”为“真”,表达式的值为1;当score=54,“score>=60”为“假”,表达式的值为0;

总结来讲,关系表达式的值只有两种可能:关系成立,则关系表达的值为“真”(值为1);关系不成立,则关系表达式的值为“假”(值为0)。在C语言中用非0值表达“真”,用0表达“假”。§

关系表达式第9页,讲稿共18页,2023年5月2日,星期三想要判断整数sum的取值是否满足:0≤sum≤100;千万不能写成“0<=sum<=100,而需要按这样的句式:sum>=0并且sum<=100来表达。也就是说,除了使用关系表达式表示简单的条件以外,还可以使用逻辑运算与、或、非来创建更为复杂的条件。§逻辑运算符和逻辑表达式第10页,讲稿共18页,2023年5月2日,星期三

C语言的逻辑运算符有3种:§逻辑运算符逻辑运算符意义示例&&逻辑与(当且仅当、并且)a>13&&d>20||逻辑或(或者,二者只要具备其一)a>13||b>20

!逻辑非(条件不成立,取反)!a

逻辑与运算符&&是用于两个关系表达式时,只有当每个表达式都为“真”时该条件才为“真”。

逻辑或运算符||也是用于两个表达式的,只要两个表达式至少有一个是“真”,该条件就为“真”。

非运算符!将把表达式更改为它的相反状态,也就是就,如果表达式为“真”,那么它的非运算的值就为“假”;如果表达式开始为“假”,那么它的非运算的值就为“假”。第11页,讲稿共18页,2023年5月2日,星期三前面表格中的“a>13&&d>20”就是逻辑表达式,逻辑表达式的值取1(真),或者0(假)。

一个逻辑表达式可以包含多个逻辑运算符,它们的优先级顺序是:“!”的优先级最高,“&&”次之,“||”的优先级最低。逻辑运算符“&&”、“||”的优先级低于所有关系运算符,而“!”的优先级高于所有算术运算符。§逻辑表达式第12页,讲稿共18页,2023年5月2日,星期三使用C的关系运算表达式可能会遇到与浮点数(单精度或双精度)相关的微妙的数学精度问题。因为计算机存储这些数据的方式不同,所以应该避免使用关系运算符“==”来衡量浮点数的等同关系,原因是,很多十进制小数(例如:0.1)不能使用有限的位数精确地以二进制表示,因此,要测试这些数字的完全等同关系将会失败。当需要测试非整数值的等同关系时,最好要求运算对象之差的绝对值小于一个非常小的值,因此,对于实际的运算对象,常规表达式

operandOne==operandTwo应该被下面的条件所取代

fabs(operandOne-operandTwo)<EPSILON其中EPSILON是一个被设置为任意可接受的足够小的值(如0.0000001或其他用户选定的值)的命名常量。因此,如果两个运算对象之差小于EPSILON的值,那么这两个运算对象被认为是最基本相等。§

数学的精度问题第13页,讲稿共18页,2023年5月2日,星期三例:如果x和y是浮点变量,那么条件

x/y==0.35应该以下面的方式来编程:

abs(x/y-0.35)<0.0000001其后面的条件可以确保以二进制非整数数字所带来的少量误差不会影响到测试条件的赋值结果。§

数学的精度问题举例第14页,讲稿共18页,2023年5月2日,星期三编写用来表示下列条件的关系表达式或逻辑表达式(使用你自己选择的变量名):

⑴一个人的年龄为30岁

age==30⑵一个人的体温大于98.6华氏度

heat>98.6⑶一个人的身高小于6英尺

height<6.0⑷目前为12月

month==12⑸输入的字母为m

key=='m'§编写条件的练习(一)第15页,讲稿共18页,2023年5月2日,星期三⑹一个人的年龄为30岁且身高大于6尺

age==30&&height>6⑺语文成绩80分以上或且数学成绩80分以上(含80分)

chinese>=80||math>=80⑻目前为1月15日

month==1&&day==15⑼0≤x≤100

x>=0&&x<=100⑽x是偶数

x%2==0⑾x的绝对值大于5

x>5||x<-5或者x*x>25⑿年份为闰年

(year%4==0&&year%100!=0)||year%400==0§编写条件的练习(二)第16页,讲稿共18页,2023年5

温馨提示

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

评论

0/150

提交评论