关系表达式和逻辑表达式

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

最新文档


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


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

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


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