第5章 选择结构程序设计.ppt
《第5章 选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第5章 选择结构程序设计.ppt(66页珍藏版)》请在麦多课文档分享上搜索。
1、第5章 选择结构程序设计,第5章 选择结构程序设计,关系运算符和关系表达式 逻辑运算符和逻辑表达式 if语句 switch语句 选择结构程序举例,5.1 关系运算符和关系表达式,所谓“关系运算”实际上就是“比较运算”,即将两个数据进行比较,判定两个数据是否符合给定的关系。,其中操作数可以是变量、常量或表达式。,操作数,关系运算符,操作数,关系运算符,关系运算符,!=,=,=,=,操作数1,操作数2,5.1 关系运算符和关系表达式,1、关系运算符 (比较两个量关系的运算符)C语言提供6种关系运算符: (大于) = (大于或等于) = = (等于)!= (不等于)注意:在语言中,“等于”关系运算符
2、是双等号“= =”,而不是单等号“= ”(赋值运算符)。,2关系运算符的优先级,(1)在关系运算符中,前4个优先级相同,后2个也相同,且前4个高于后2个。 (2)与其它种类运算符的优先级关系,算术运算符(高),关系运算符,赋值运算符(低),5.1 关系运算符和关系表达式,关系运算符都是双目运算符,其结合性均为左结合(多个优先级相同的关系运算符同时出现时,运算方向为从左至右)。例如:a+bc 等价于(a+b)cabc 等价于(ab)c /*左结合*/,5.1 关系运算符和关系表达式,3关系运算符的结合性,由于语言没有逻辑型数据,所以用整数“”表示“逻辑真”,用整数“”表示“逻辑假”。,5.1 关
3、系运算符和关系表达式,4关系表达式的概念,所谓关系表达式是指,用关系运算符将两个表达式连接起来,进行关系运算的式子。例如,下面的关系表达式都是合法的:ab,a+bc-d,(a=3)=b, (ab)=(bc),5关系表达式的值,例如,假设num1=3,num2=4,num3=5,则:(1)num1num2的值(2)(num1num2)!=num3的值(3)num1num2num3的值思考题:任意改变num1或num2的值,会影响整个表达式的值吗?(4)(num1num2)+num3再次强调:C语言用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。所以,关系表达式的值还可以参与其它种类的运算
4、,例如算术运算、逻辑运算等。,例 int a=3,b=2,c=1,d,f;ab (ab)=cb+cbf=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,5.1 关系运算符和关系表达式,关系运算注意:,例 若a=0; b=0.5; x=0.3;则 a=x=b的值为,0,例 5278在C中是允许的,值为,0,例 int i=1, j=7,a; a=i+(j%4!=0); 则a=,2,例 a0 结果为A100 结果为,1,0,5.1 关系运算符和关系表达式,例 注意区分“=”与“=”int a=0,b=1;if(a=b) printf(“a equal to b”);elsep
5、rintf(“a not equal to b”);,例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=1.0 结果为 可改写为:fabs(1.0/3.0*3.0-1.0)1e-6,关系运算注意:,5.1 关系运算符和关系表达式,0,逻辑运算符,逻辑运算符用于连接一个或多个条件,判断这些条件是否成立 逻辑运算符的类型为:,5.2 逻辑运算符和逻辑表达式,逻辑“与”运算符 &,所有学科及格,考勤率达到75%,留级,留级,留级,升级,Yes,No,No,No,No,Yes,Yes,Yes,逻辑“与”运算符 &,逻辑“或”运算符 |,无法支付,可支付,可支付,可支付,Yes,No,No
6、,No,No,Yes,Yes,Yes,购物帐单,信用卡,逻辑“或”运算符 |,逻辑“非”运算符 !,天气 NOT 阴天,逻辑运算符总结,&,只有当两个条件都为真时才执行操作,只要任何一个条件为真时就执行操作,对原条件取反,即: 如果原条件为假时就执行操作,|,!,5.2 逻辑运算符和逻辑表达式,1.逻辑运算符及运算规则,下面的逻辑表达式哪个是合法的:(x=0) & (x5)(x=10)! (x=0),(1)C语言提供三种逻辑运算符:& 逻辑与(相当于“同时”)| 逻辑或(相当于“或者”)! 逻辑非(相当于“否定”),(2)运算规则1)&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否
7、则为“假”。(全真既真)2) | :当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。(一真既真)3) ! :当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。(取反),5.2 逻辑运算符和逻辑表达式,1.逻辑运算符及运算规则,例如,假定x=5,则(x=0) & (x5)的值,2逻辑运算符的优先级,(1)逻辑非的优先级最高,逻辑与次之,逻辑或最低 .即:!(非) &(与) |(或) (2)与其它种类运算符的优先关系! 算术运算符 关系运算符 & | 赋值运算符 逗号运算符,5.2 逻辑运算符和逻辑表达式,例 ab&xya=b|x=y!a|ab
8、,/ (a=x) & (x=b),/(ab)&(xy),/(a=b)|(x=y),/(!a)|(ab),用逻辑运算符将1个或多个关系表达式或逻辑量(真或假)连接起来的式子。,5.2 逻辑运算符和逻辑表达式,3逻辑表达式的概念,在C语言中,用逻辑表达式表示多个条件的组合。例如,要判断某一年year是否是闰年。闰年的条件是符合二者之一:能被4整除,但不能被100整除。能被4整除,又能被400整除。,(year%4=0)&(year%100!=0)|(year%400=0),逻辑表达式的值也是一个逻辑值(非“真”即“假”)。,5.2 逻辑运算符和逻辑表达式,4逻辑表达式的值,例如,假设num=12,
9、则: !num的值 num=1 num31的值1。,C语言中,运算量: 0表示“假”,非0表示“真”,运算结果: 0表示“假”,1表示“真”,例 a=4;b=5;!aa&ba|b!a|b4&0|253&2|84-!0c&d,值为1,值为0,值为1,值为1,值为1,值为1,/(53)&2|(8(4-(!0) 值为1,5.2 逻辑运算符和逻辑表达式,(1)逻辑运算符两侧的操作数,除可以是和非的整数外,也可以是其它任何类型的数据,如实型、字符型等。a&b(2)在计算逻辑表达式时,并不是所有的表达式都被求解,只有在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。,5.2 逻辑运算符和逻辑
10、表达式,5说明,短路特性,例 a(m=ab)&(n=cd),/结果m=0,n=1,例如:执行以下语句后,x,y,z的值分别为()int x=0,y=0,z=0;+x|+y,5.3 简单条件结构,用if语句可以构成分支结构。它对给定的条件进行判断,根据判断的结果(真或假)来决定执行某个分支程序段。,单选择: 格式:if (expression) statement 执行过程:,例:if (xy)printf(“%d”,x);,表达式,真,假,语句,# include main() int num1, num2, sum;printf(“n请输入两个数:“);scanf(“%d %d“, ,简单i
11、f语句的示例,56,78,134,请输入两个数:56 78,两数的和大于 100,双选: 格式:if (expression) statement1elsestatement2 执行过程:,例:if (xy) printf(“%d“,x);else printf(“%d“,y);,表达式,真,假,语句1,语句2,修改上例 # include main() int num1, num2, sum;printf(“n请输入两个数:“);scanf(“%d %d“, ,#include main() int num;printf(“n请输入一个整数:“);scanf (“%d“, ,if-else语
12、句的示例,57,请输入一个整数:57,57 是一个奇数。,问题描述: 要求用户输入一个字符,用程序判断该字符是否为小写字母 ,并输出相应的信息。,#include main() char a;printf(“n请输入一个字符:“);scanf(“%c“, ,使用&运算符的示例,T,请输入一个字符:T,您输入的字符不是小写字母,问题描述: 接受用户输入的三种商品的价格。如果购买的三种商品中至少有一种商品的价格大于 50 或者三种商品的总额大于 100,则折扣率为15,否则折扣率为,计算并显示用户应付的钱数。,#include main() float rate1,rate2,rate3;doub
13、le discount,total;printf(“n请输入第一种商品的价格:“);scanf(“%f“, ,使用 | 运算符的示例,if(rate150)|(rate250)|(rate350)|(total100),输出: 请输入第一种商品的价格:34 请输入第二种商品的价格:42 请输入第三种商品的价格:38 折后总价为:96.90,问题描述: 确定用户输入的数字是否可以被5整除,并输出相应的消息。,#include main() int num;printf(“n 请输入一个数:“);scanf(“%d“, ,使用 ! 运算符的示例,请输入一个数:90,该数能被 5 整除,问题描述:判
14、定给定的年份是否为闰年。提示:闰年的判定规则为:能被 4 整除但不能被 100 整除的年份,或能被 400 整除的年份。,#include main() int year;printf(“n 请输入年份:“);scanf(“%d“, ,综合示例1,请输入年份:2005,2005 年不是闰年,问题描述: 输入一个5位数,判断它是不是回文数。 例如:12321是回文数,个位与万位相同,十位与千位相同。,#include main() long ge,shi,qian,wan,x;printf(“n 请输入一个五位整数:“);scanf(“%ld“, ,综合示例2,输出: 请输入一个五位整数:456
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选择 结构 程序设计 PPT
