收藏 分销(赏)

c选择结构程序设计.ppt

上传人:知****运 文档编号:14679592 上传时间:2026-10-28 格式:PPT 页数:44 大小:381.50KB 下载积分:10 金币
下载 相关
c选择结构程序设计.ppt_第1页
第1页 / 共44页
c选择结构程序设计.ppt_第2页
第2页 / 共44页


点击查看更多>>
资源描述
First level,Second level,Third level,Fourth level,Fifth level,2021/2/28,*,Click to edit Master title style,Copyright Henan Polytechnic University,语言,第,4,章,选择结构程序设计,C,C,语言程序设计,第,4,章 选择结构程序设计,2021/2/28,1,C,语言在进行程序设计的时候,使用语句对程序的执行情况进行选择控制。,程序有了选择,才会有智能。,游戏还是学习,?,生存还是灭亡,?,经常遇到很多情况需要根据条件作选择,.,这些事件的特点是:,针对不同情况作不同的选择。,引子,2021/2/28,2,本章要点,第,4,章 选择结构程序设计,本章难点,关系运算符和关系表达式,逻辑运算符和逻辑表达式,条件运算符和条件表达式,if,语句和,switch,语句的用法,if,语句的嵌套,Switch,语句的用法,2021/2/28,3,4.1,4.2,4.3,4.4,关系关系运算符和关系表达式,逻辑运算符和逻辑表达式,If,语句及其构成的选择结构,Switch,语句及其构成的选择结构,第,4,章 选择结构程序设计,4.5,选择结构程序设计举例,2021/2/28,4,4.1,关系运算符和表达式,if(50)y=1;,if(1=53)y=1;,else y=-1;,2021/2/28,5,关系运算符,4.1,关系运算符和表达式,关系运算符,含义,优先级与结合方向,小于,优先级相同(高),结合方向(从左向右),大于,=,大于或等于,=,等于,优先级相同(低)结合方向(从左向右),!=,不等于,2021/2/28,6,关系运算符,4.1,关系运算符和表达式,关系运算符与算术运算符、赋值运算符的优先级关系,ca+b,等效于,c(a+b),ab!=c,等效于,(ab)!=c,a=bc,等效于,a=(bc,等效于,a=(bc),2021/2/28,7,关系表达式,4.1,关系运算符和表达式,关系表达式的一般形式为,:,表达式 关系运算符 表达式,表达式可以是算术表达式、逻辑表达式、赋值表达式、字符表达式,a+bc-d x3/2,a,+1(bc)a!=(c=d),关系表达式的值是,“,真,”,和,“,假,”,,用,“,1,”,和,“,0,”,表示。,例,、,a=3,b=2,c=1,则:,ab,真,表达式的值为,1,(ab)=c,真,表达式的值为,1,b+cb,d,的值等于,1,2021/2/28,8,a,0,结果为,1,A,100,结果为,0,语言程序设计,第二章数据描述,C,int a=3,b=2,c=1,d,f;,ab /1,(ab)=c/1,b+cb /1,请问,abc,的值是?,假,表达式的值为,0,2021/2/28,9,关系运算注意:,例,注意区分,“,=,”,与,“,=,=,”,int a=0,b=1;,if(a=b),printf(,“,a equal to b,”,);,else,printf(,“,a not equal to b,”,);,例,应避免对实数作相等或不等的判断,如,1.0/3.0*3.0=1.0,结果为,可改写为:,fabs(1.0/3.0*3.0-1.0)b)&(xy),|,逻辑,“,或,”,(,OR,),!,逻辑,“,非,”,(,NOT,),单目运算符,要求一个操作数,如:,!(ab),2021/2/28,12,a,b,!a,!b,a&b,a|b,真,假,真,假,假,假,真,真,逻辑运算符,种类:,!&|,逻辑运算真值表,C,语言中,运算量:,0表示,“,假,”,,,非0表示,“,真,”,真,假,假,假,假,假,真,真,假,假,真,真,真,假,真,真,4.2,逻辑运算符和表达式,2021/2/28,13,例,a=4;b=5;,!a,a&b,a|b,!a|b,4&0|2,c&d,值为0,值为1,值为1,值为1,值为1,53&2|8y+2&c,f=(!a)&b|xy+2&c,f=(!a)&b|x(y+2)&c,f=(!a)&b|(x(y+2)&c,f=(!a)&b|(x(y+2)&c),&,11,级,|,,,12,级,2021/2/28,15,例,a=x&xb&xy,a=b|x=y,!a|ab,/(a=x)&(xb)&(xy),/(a=b)|(x=y),/(!a)|(ab),4.2,逻辑运算符和表达式,53&2|8y)printf(,“,%d,”,x);,语句可以是用,括起来的复合语句,表达式可以是常量、变量、表达式。其类型可以是整、实、字符型。语句可以是一句或复合语句。,其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。,4.3,if,语句及其构成的选择结构,2021/2/28,20,2.,第二种形式为,:if-else,if(,表达式,),语句,1,;,else,语句,2,;,其语义是:如果表达式的值为真,则执行语句,1,,否则执行语句,2,。,其执行过程可表示为下图,2021/2/28,21,if(a=b,if(3)printf(“OK”);,if(a)printf(“%d”,a);,说明:,if,后面的表达式类型任意,if(x),if(x!=0),if(!x),if(x=0),2021/2/28,22,说明:,if,后面的表达式类型任意,语句可以是复合语句,4_4.cpp,2021/2/28,23,if(expr1),if(expr2)statement1,else statement2,else,if(expr3)statement3,else statement4,内嵌,if,内嵌,if,if(expr1),if(expr2),statement1,else,statement2,内嵌,if,if(expr1),if(expr2),statement1,else,statement3,内嵌,if,if(expr1),statement1,else,if(expr3),statement3,else,statement4,内嵌,if,例,if,语句嵌套,:,一般形式:,2021/2/28,24,#include,main(),int x,y;,printf(Enter integer x,y:);,scanf(%d,%d,if(x!=y),if(xy)printf(XYn);,else printf(XYn);,else,printf(X=Yn);,运行,:,Enter integer x,y:12,23,XY,Enter integer x,y:12,12,X=Y,例 输入两数并判断其大小关系,2021/2/28,25,使用内嵌的,if,语句时,应区分表面形式与实际作用,if(),if(),语句,1,else,if(),语句,2,else,语句,3,在,C,语言中,if,与,else,的配对原则是:,从最内层开始,,else,总是与它上面最近的,未曾配对的,if,配对。,因此,上述问题在编译时的真正效果是:,2021/2/28,26,为了使程序清晰,不至出错,采取的方法是:,用,实现,如上述问题可进行如下描述:,if(),if(),语句,1,else,if(),语句,2,else,语句,3,4.5.2.cpp,2021/2/28,27,C,2021/2/28,28,5.3 if,语句,特殊的多重嵌套形式,,if-else-if,形式,if(,表达式,1),语句,1,;,else if(,表达式,2),语句,2,;,else if(,表达式,3),语句,3,;,else if(,表达式,m),语句,m,;,else,语句,n,;,其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个,if,语句之外继续执行程序。如果所有的表达式均为假,则执行语句,n,。然后继续执行后续程序。,2021/2/28,29,例 判断输入字符种类,教材例,4.5,4_5_1.Cpp,2021/2/28,30,例 判断输入字符种类,2021/2/28,31,4.3.3,条件运算符和条件表达式,条件表达式的一般形式:,表达式,1,?表达式,2,:表达式,3,其中:?:是条件运算符号(三目,),说明:,1,、条件运算符的执行顺序:,例,:,max=(ab)?a:b;,相当于,If(ab)max=a;,else max=b,2021/2/28,32,2,、条件运算符的优先级高于赋值运算符,低于算术运算符和关系运算符。,max=ab?a:b max=(ab)?a:b),ab?a:b+1 (ab)?a:(b+1),3,、条件运算符的结合方向:从右向左,ab?a:cd?c:d,a,b,c,d,的取值,9,8,4,3,求表达式的值,?,5_2_4.cpp,2021/2/28,33,4,、表达式,2,和表达式,3,不仅可以式是数值表达式,还可以是赋值表达式或函数表达式。例如:,main(),int a,b;,scanf(,“,%d,%d,”,ab?printf(,“,max=%xn,”,a):printf(,“,max=%dn,”,b);,输入:,3,5,输出:,max=5,2021/2/28,34,5,、表达式,1,2,3,类型可以相同,也可不同,如果类型不同时,低类型向高类型转换,main(),int x=-1,y=5,z=6;,printf(,“,%cn,”,x?,a,:,b,);,printf(,“,%f n,”,yz?1:1.5);,输出结果,?,输出:,a,1.000000,5_3_7.cpp,2021/2/28,35,4.1,4.2,4.3,4.4,关系关系运算符和关系表达式,逻辑运算符和逻辑表达式,If,语句及其构成的选择结构,Switch,语句及其构成的选择结构,第,4,章 选择结构程序设计,4.5,选择结构程序设计举例,2021/2/28,36,switch(,表达式,),case,常量表达式,1:,语句,1;,case,常量表达式,2:,语句,2;,case,常量表达式,n:,语句,n;,default :,语句,n+1;,1,、,switch,后的表达式,新的,ANSI C,标准中允许表达式的类型为任何类型。,2,、每个,case,后的常量表达式只能是常量组成的表达式,当,switch,后的表达式的值与某一个常量表达式的值一致时。程序就转到此,case,后的语句开始执行。如果没有一个常量表达式的值与,switch,后的值一致,就执行,default,后的语句。,4.4 Switch,语句及其构成的选择结构,2021/2/28,37,3,、每个,case,后的常量表达式的值必须互不相同,不然的话程序就不知该跳到何外开始执行。,4,、在执行完一个,case,后面的语句后,程序流程转到下一个,case,后的语句开始执行,5,、,case,后可包含多个可执行语句,且不必加,6,、,switch,可嵌套,程序清单,运行结果,x=,B;switch(x)case A:printf(Grade is An);case B:printf(Grade is Bn);case C:printf(Grade is Cn);case D:printf(Grade is Dn);,Grade is BGrade is CGrade is D,5_3_6.cpp,4.4 Switch,语句及其构成的选择结构,2021/2/28,38,7,、如果只想执行某个,case,后的语句,那么就要在,case,的语句的最后使用,break,语句以跳出,switch,语句。,程序清单,运行结果,x=,B;switch(x)case A:printf(Grade is An);break;case B:printf(Grade is Bn);break;case C:printf(Grade is Cn);break;case D:printf(Grade is Dn);break;,Grade is B,4.4 Switch,语句及其构成的选择结构,2021/2/28,39,8,、,default,这一行可以省略。,9,、多个,case,可以共用一段程序。比如我们给判定学生的成绩等级,只区分及格和不及格的。,程序清单,运行结果,main()char x;scanf(,“,%c,”,switch(x)case,A,:case,B,:case,C,:printf(,“,及格,.n,”,);,break;case,D,:printf(,“,不及格,n);,A,及格,._,B,及格,._,D,不及格,._,4.4 Switch,语句及其构成的选择结构,2021/2/28,40,4.1,4.2,4.3,4.4,关系关系运算符和关系表达式,逻辑运算符和逻辑表达式,If,语句及其构成的选择结构,Switch,语句及其构成的选择结构,第,4,章 选择结构程序设计,4.5,选择结构程序设计举例,2021/2/28,41,4.5,选择结构程序设计举例,例,4-9,输入一个年份,判断是否公历中的闰年。,4_9.cpp,分析:闰年的特征,每,4,年一个闰年,每,100,年少一个闰年,每,400,年再多一个闰年。,(year%4=0&year%100!=0|year%400=0),2021/2/28,42,4.5,选择结构程序设计举例,例,4-8,输入一个不多于,4,位的正整数,求出它是几位数,逆序打印出各位数字。,5_3_8.cpp,分析:设输入的正整数为,x,,按其位数多少分为,4,种情况:,当,x,为,4,位数时,千位不为,0,;,当,x,为,3,位数时,千位为,0,,百位不为,0,;,当,x,为,2,位时,千位和百位为,0,,十位不为,0,;,当,x,为,1,位时,千位、百位和十位均为,0,,个位不为,0,。,可用,if,语句的嵌套形式完成上述功能。,2021/2/28,43,本章小结,C,语言有两种语句来实现选择结构,一种是,if,语句,另一种是,switch,语句。,提要,知识点,1.if,语句的形式主要有单分支,if,语句和双分支,if,语句,可以通过,if,语句的嵌套来实现多分支问题,。,2.switch,语句用于多个分支情况,根据表达式的值选择执行不同的语句块。,3.break,语句经常在,switch,语句体中出现,用于跳出,switch,语句体,使,switch,语句真正起到分支作用。此外,使用条件运算符也可以实现简单的选择结构。,总览,C,语言中提供了,、,、,=,、,=,、,!=,等,6,种关系运算符以及,&,、,|,、,!,等,3,种逻辑运算符,这些运算符所构成的关系表达式和逻辑表达式经常出现在选择结构中,它们的值决定了程序的流程。,2021/2/28,44,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服