kj-第4章选择结构程序的设计ppt课件(全).ppt
《kj-第4章选择结构程序的设计ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《kj-第4章选择结构程序的设计ppt课件(全).ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 选择结构程序的设计选择结构程序的设计本章概述 本章的学习目标主要内容1本章概述本章概述l首先介绍条件表达式和逻辑表达式首先介绍条件表达式和逻辑表达式l其次介绍了选择结构的基本语句其次介绍了选择结构的基本语句If语句及其语句及其三种形式三种形式lswitch语句的介绍语句的介绍l if语句和语句和switch语句的嵌套使用语句的嵌套使用l相应程序举例相应程序举例2本章的学习目标本章的学习目标l本章教学目的本章教学目的:l 掌握关系表达式和逻辑表达式的使用方法,掌握关系表达式和逻辑表达式的使用方法,能使用能使用if和和switch 语句编写简单的程序。语句编写简单的程序。l本章教学重点
2、:本章教学重点:if和和switch 语句语句l本章教学难点:本章教学难点:if和和switch语句的嵌套语句的嵌套3主要内容主要内容l4.1 关系运算及关系表达式关系运算及关系表达式l4.2 逻辑运算及逻辑表达式逻辑运算及逻辑表达式l4.3 if语句语句l4.4 switch语句语句l4.5 if语句和语句和switch语句的嵌套形式语句的嵌套形式l4.6 程序举例程序举例44.1 关系运算及关系表达式关系运算及关系表达式l 所谓所谓“关系运算关系运算”实际上就是实际上就是“比较运算比较运算”,即将两个数据进行比较,判定两个数,即将两个数据进行比较,判定两个数据是否符合给定的关系。据是否符合
3、给定的关系。例如,例如,“a ba b”中的中的“”表示一个大于关系运表示一个大于关系运算。算。如果如果a的值是的值是5,b的值是的值是3,则大于关系运算,则大于关系运算“”的结果为的结果为“真真”,即条件成立;,即条件成立;如果如果a的值是的值是2,b的值是的值是3,则大于关系运算,则大于关系运算“”的结果为的结果为“假假”,即条件不成立。,即条件不成立。54.1 关系运算及关系表达式关系运算及关系表达式l 关系运算符及其优先次序关系运算符及其优先次序1 1关系运算符关系运算符C C语言提供语言提供6 6种关系运算符:种关系运算符:(小于小于),=(),(大于大于),=(),=(大于或等于大
4、于或等于),),=(=(等于等于),!=(),!=(不等于不等于)2 2优先级优先级 在关系运算符中,前在关系运算符中,前4 4个优先级相同,后个优先级相同,后2 2个也相个也相同,且前同,且前4 4个高于后个高于后2 2个。个。64.1 关系运算及关系表达式关系运算及关系表达式l注意:注意:在语言中,在语言中,“等于等于”关系运算符是双等号关系运算符是双等号”=”=”,而不是单等号,而不是单等号“=”(赋值运算符)。(赋值运算符)。应避免对实数作相等或不等的判断应避免对实数作相等或不等的判断,如如 1.0/3.0*3.0=1.0 ,可,可改写为:改写为:fabs(1.0/3.0*3.0-1.
5、0)b ab,a+bc-da+bc-d,(a=3)=(b=5)(a=3)=b a=b,(ab)=(bc)(ab)=(bc)2关系表达式的值关系表达式的值逻辑值(非逻辑值(非“真真”即即“假假”)。)。84.1关系运算及关系表达式关系运算及关系表达式l注意:注意:可以把关系表达式的值赋给其他变量,可以把关系表达式的值赋给其他变量,z=(xy+3)当x=23,y=12时,z的值为1。a=(b!=c)当b=2、c=2时,a的值为0。关系运算符是自左至右的结合方向,关系运算符是自左至右的结合方向,若a=3、b=2、c=1,y=(abc),则y 的值为0。因为按照自左至右的结合方向,先执行关系运算“ab
6、”得值为1(“真”),再执行关系运算“1c”,得值为0(“假”),因此y为0。94.1关系运算及关系表达式关系运算及关系表达式l关系运算符的优先级低于算术运算符。关系运算符的优先关系运算符的优先级低于算术运算符。关系运算符的优先级高于赋值运算符。根据优先级的规定,下面左边的关系级高于赋值运算符。根据优先级的规定,下面左边的关系表达式可以简化为下面右边的形式:表达式可以简化为下面右边的形式:(b*b-4*a*c)=0 b*b-4*a*c=0z=(xy+3)z=xy+3(ab)=c ab=c a=(b!=c)a=b!=c当然为提高程序的可读性、可维护性你不妨多使用括当然为提高程序的可读性、可维护性
7、你不妨多使用括号,因为号,因为C语言中的有些优先级很容易让你不小心犯错。语言中的有些优先级很容易让你不小心犯错。104.2 逻辑运算及其表达式逻辑运算及其表达式l关系表达式只能描述单一条件,例如关系表达式只能描述单一条件,例如“x=0”。如果需要描述。如果需要描述“x=0”、同时、同时“x0)&(y0)x0&y0(x=3)|(y!=6)x=3|y!=6(x0)&(!z)x0&!z134.2 逻辑运算及其表达式逻辑运算及其表达式l4.2.2 逻辑表达式逻辑表达式1逻辑表达式的概念逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子。在C语言中,用逻辑表
8、达式表示多个条件的组合。例如,(year%4=0)&(year%100!=0)|(year%400=0)就是一个判断一个年份是否是闰年的逻辑表达式。逻辑表达式的值也是一个逻辑值(非“真”即“假”)。144.2 逻辑运算及其表达式逻辑运算及其表达式l4.2.2 逻辑表达式逻辑表达式2逻辑量的真假判定逻辑量的真假判定和非和非 语言用整数“”表示“逻辑真”、用“”表示“逻辑假”。但在判断一个数据的“真”或“假”时,却以和非为根据:如果为,则判定为“逻辑假”;如果为非,则判定为“逻辑真”。例如,假设num=12,则:!num的值=,num=1 num31的值=1。154.2 逻辑运算及其表达式逻辑运算
9、及其表达式l3说明说明逻辑运算符两侧的操作数,除可以是和非的整数外,也可以逻辑运算符两侧的操作数,除可以是和非的整数外,也可以是其它任何类型的数据,如实型、字符型等。是其它任何类型的数据,如实型、字符型等。注意:在逻辑表达式的求解中,并不是所有的逻辑运算符都被按注意:在逻辑表达式的求解中,并不是所有的逻辑运算符都被按顺序执行,若计算到某一步时,逻辑表达式的值是顺序执行,若计算到某一步时,逻辑表达式的值是“真真”是是“假假”已经明确,则不再执行后面的逻辑运算符。例如:已经明确,则不再执行后面的逻辑运算符。例如:(1)对于逻辑表达式)对于逻辑表达式a&b&c,只有只有a为真(非为真(非0)时,)时
10、,才需要判别才需要判别b的值,只有的值,只有a和和b都为真的情况下才需要判别都为真的情况下才需要判别c的值。的值。只要只要a为假,就不再去判断为假,就不再去判断b和和c(此时整个表达式已确定为假)(此时整个表达式已确定为假)。如果。如果a为真,为真,b为假,就不再去判断为假,就不再去判断c。(2)对于逻辑表达式)对于逻辑表达式a|b|c,只要只要a为真(非为真(非0),就不再),就不再去判断去判断b和和c。只有。只有a为假,才去判断为假,才去判断b。a和和b都为假时,才去判都为假时,才去判断断c。164.3 if语句语句lif语句是用来判定所给定的条件是否满足,语句是用来判定所给定的条件是否满
11、足,根据判定的结果(真或假),决定执行哪根据判定的结果(真或假),决定执行哪条分支的语句。条分支的语句。l4.3.1 if语句的三种形式语句的三种形式1第一种第一种if语句格式如下:语句格式如下:if(表达式)语句(表达式)语句它的执行过程见图,若表达式为它的执行过程见图,若表达式为“真真”,则执行该语句,则执行该语句,否则不执行该语句。否则不执行该语句。174.3 if语句语句l例例4.1 从键盘输入一个整数从键盘输入一个整数x,如果,如果x0,则打印,则打印x的值。的值。#include int main()int x;printf(Input x:);scanf(%d,&x);if(x0
12、)printf(x=%dn,x);return 0;184.3 if语句语句l2第二种第二种if语句格式如下:语句格式如下:if(表达式)(表达式)语句语句1else 语句语句2它的执行过程是它的执行过程是:若表达式为若表达式为“真真”,则执行,则执行该语句该语句1,否则执行语句,否则执行语句2,语句,语句1和语句和语句2只能只能有其中一个语句被执行到。有其中一个语句被执行到。194.3 if语句语句#include int main()int a;printf(输入一个整数输入一个整数:);scanf(%d,&a);if(a%2=0)printf(%d 是偶数是偶数n,a);else pri
13、ntf(%d 是奇数是奇数n,a);return 0;例例4.2 从键盘输入一个整数,判断该整数是奇数还是偶数。从键盘输入一个整数,判断该整数是奇数还是偶数。203第三种第三种if语句格式如下:语句格式如下:l3第三种第三种if语句格式如下:语句格式如下:if(表达式(表达式1)语句语句1else if(表达式(表达式2)语句语句2else if(表达式(表达式n-1)语句语句n-1else 语句语句n213第三种第三种if语句格式如下:语句格式如下:224.3 if语句语句#include int main()float x,y;printf(Input x:);scanf(%f,&x);i
14、f(x1)y=x+1;else if(1=x&x2)y=x+2;/*或写成或写成else if(x2)y=x+2;*/else y=x+3;printf(x=%f,y=%fn,x,y);return 0;例例4.3 输入输入x,计算并输出下列分段函数,计算并输出下列分段函数y的值。的值。234.3 if语句语句l4.3.2 条件运算符条件运算符 条件运算符要求有条件运算符要求有3个操作对象,称为三目运算符,它是个操作对象,称为三目运算符,它是C语言中语言中唯一的一个三目运算符。条件表达式的一般形式如下:唯一的一个三目运算符。条件表达式的一般形式如下:表达式表达式1?表达式?表达式2:表达式:表
15、达式3 它的执行过程是:先求解表达式它的执行过程是:先求解表达式1,若表达式,若表达式1为为“真真”,则取表,则取表达式达式2的值为该条件表达式的值,否则取表达式的值为该条件表达式的值,否则取表达式3的值为该条件表的值为该条件表达式的值。达式的值。例如以下的例如以下的if语句:语句:if(x=y)s=x*y;else s=x+y;可以用下面的条件运算符来处理:可以用下面的条件运算符来处理:s=(x=y)?)?(x*y):(x+y);其中其中“(x=y)?)?(x*y):(x+y)”是一个是一个“条件表达式条件表达式”。244.3 if语句语句l4.3.2 条件运算符条件运算符说明:说明:(1)
16、条件运算符优先于赋值运算符)条件运算符优先于赋值运算符。因此上面在因此上面在“s=(x=y)?)?(x*y):(x+y);”中,是中,是先求解条件表达式,再将它的值赋给先求解条件表达式,再将它的值赋给s。(2)条件运算符的优先级别低于关系运算符和算术运算)条件运算符的优先级别低于关系运算符和算术运算符符。因此条件表达式:。因此条件表达式:s=(x=y)?)?(x*y):(x+y);括号可以不要,写成下面形式:括号可以不要,写成下面形式:s=x8?0:y3?1:-1 相当于相当于 x8?0:(:(y3?1:-1)(4)条件表达式中)条件表达式中“表达式表达式2”和和“表达式表达式3”不仅可以是数
17、值表达不仅可以是数值表达式,也可以是赋值表达式或函数表达式。式,也可以是赋值表达式或函数表达式。例如:例如:xy?(?(z=x+y):():(z=x*y)或或 xy?putchar(A):putchar(a)即即xy成立时,上面条件表达式的值是成立时,上面条件表达式的值是putchar(A);否则上面条件表;否则上面条件表达式的值是达式的值是putchar(a)。函数。函数putchar的返回值是参数本身,即显示的返回值是参数本身,即显示的字符。的字符。264.3 if语句语句例例4.4 输入一个输入一个2位整数,判断它的十位数码是否为位整数,判断它的十位数码是否为3,如果是,如果是3,将它乘
18、以将它乘以10;如果不是,将它乘以;如果不是,将它乘以6。然后输出乘以。然后输出乘以10或乘以或乘以6后后的结果。的结果。#include int main()int m,k;scanf(%d,&m);k=(m/10=3)?(m=m*10):(m=m*6);printf(%dn,k);return 0;274.4 switch语句语句l1switch语句的一般形式语句的一般形式switch(表达式表达式)case 常量表达式常量表达式1:语句组;:语句组;break;case 常量表达式常量表达式2:语句组;:语句组;break;.case 常量表达式:语句组;常量表达式:语句组;break;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- kj 选择 结构 程序 设计 ppt 课件
限制150内