《《C语言第四章》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C语言第四章》PPT课件.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章 选择结构程序设计选择结构程序设计l条件判断关系运算与关系表达式逻辑运算符和逻辑表达式l用if语句实现选择结构if语句的使用if语句的嵌套l利用switch语句实现多分支选择结构l程序例子及提高4.1 条件判断条件判断l4.1.1 条件判断的含义根据某个条件是否成立来决定行为方式条件判断的结果:只有“是”或“否”一般情况下,可根据行为的多少,设置判断的数目;根据判断条件的多少,设置判断条目l绿灯行、红灯停:两种条件对应两种行为:两个判断:是否是绿灯、是否是红灯;l60岁的男性退休:两种条件对应一种行为:一个判断:是否是60岁并且是男性(两个条目)4.1 条件判断条件判断l4.1.2
2、 关系运算符和关系表达式关系运算符:用来进行比较大小的符号。关系运算符的优先级:l先比较大小,再判断相等l高:、=l低:=、!=l例子:ab=c 等效于(ab)=ca=bc 等效于 a=(ba+b 等效于c(a+b)a*b=c+d 等效于(a*b)=(c+d)l关系运算符优先级高于赋值运算符l例子:a=bc 等效于a=(bc)b=bc 等效于b=(bb)当a大于b时,执行大括号中内容if(a=1)当a等于b时,执行大括号中内容if(a与或逻辑运算与关系运算、算术运算的优先级l基本模式:算术关系逻辑赋值l特例:!(非)运算最高l具体内容如图:!(非)高算术运算符关系运算符逻辑运算符赋值运算符 低
3、4.1 条件判断条件判断l4.1.4 逻辑运算符和逻辑表达式逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的式子l逻辑表达式的值是一个逻辑量:“真”或“假”l在C语言中,以0代表“假”值,以非非0代表“真”值l逻辑运算后,其结果为0或14.1 条件判断条件判断l4.1.4 逻辑运算符和逻辑表达式逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的式子l逻辑表达式的值是一个逻辑量:“真”或“假”l在C语言中,以0代表“假”值,以非非0代表“真”值l逻辑运算后,其结果为0或1逻辑表达式可以表示多个判断条件4.1 条件判断条件判断l4.1.4 逻辑运算符和逻辑表达式例:60岁男性和50岁女性
4、退休l分析:一个行为:退休两种情况:60岁男性、50岁女性:满足其中一种情况就可以退休。是或运算60岁男性:两个条件:60岁、并要求是男性。是与运算50岁女性:两个条件:50岁、并要求是女性。是与运算l表达式:(年龄=60&性别=男性)|(年龄=50&性别=女性)4.1 条件判断条件判断l4.1.4 逻辑运算符和逻辑表达式例:闰年的判断l分析:闰年的计算方法:能整除4、不能整除100、能整除400整除4里包含整除100;整除100里包含整除400先设定(条件1:能整除4同时不能整除100,与关系)条件1中:整除100里包含的整除400也被排除在外,应再加上这部分(条件2:能整除400)条件2与
5、条件1互为补充:是或者关系l表达式:(year%4=0&year%100!=0)|(year%400=0)4.2 用用if语句实现选择结构语句实现选择结构l4.2.2 if语句的一般形式两种形式:以带不带else子句来区分形式1:if(表达式)内嵌语句l当表达式的值为真时,执行内嵌语句中的程序形式2:if(表达式)内嵌语句1 else 内嵌语句2l当表达式的值为真时,执行内嵌语句1中的程序l当表达式的值为假时,执行内嵌语句2中的程序形式1可以看做是形式2的特殊情况。4.2 用用if语句实现选择结构语句实现选择结构l4.2.3 if 语句的使用说明表达式的值:非0为真、0为假if 和else后的
6、语句,只能跟一条内嵌语句l可以是一条以“;”号结束的普通语句l也可以是一条以包含的复合语句else 子句是if语句的一部分,不能单独出现。lelse子句自动和离它最近的if语句配对4.2 用用if语句实现选择结构语句实现选择结构l4.2.3 if 语句的使用说明if 语句的书写格式l将属于if语句包含的内嵌语句采用缩进形式书写 正确的书写 错误的书写4.2 用用if语句实现选择结构语句实现选择结构l4.2.3 if 语句的使用说明if 语句的书写格式l将属于if语句包含的内嵌语句采用缩进形式书写 正确的书写 错误的书写4.2 用用if语句实现选择结构语句实现选择结构l4.2.3 if 语句的使
7、用说明if 语句的书写格式lif else形式的书写 正确的书写 错误的书写4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断在选择结构中又包含一个或多个选择结构if语句中再包含一个或多个if语句嵌套的说明l嵌套是指一个if语句的子语句是复合语句,其含有另外的一个或多个if语句。l除最外层的if语句,其他的if语句都是包含在上层if语句的if子句部分或或else子句部分。l嵌套的if语句不能交叉4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断嵌套的说明靠近原则下 else子句自动与最 近的if语句搭配。自
8、动与最近的 搭配无法出现交叉!无法出现交叉!4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断什么情况下使用嵌套?l多个相与条件下,执行一个行为:可以使用嵌套,多个相与条件下,执行一个行为:可以使用嵌套,也可以使用单个也可以使用单个if语句和条件组合的方式语句和条件组合的方式l例:60岁男性退休嵌套方式:if(年龄=60)if(性别=男性)退休条件组合方式:if(年龄=60&性别=男性)退休4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断什么情况下使用嵌套?l多个行为具有某些相同的条件,相同的条件为第一多
9、个行为具有某些相同的条件,相同的条件为第一层,不同的条件为嵌套层,执行不同的行为层,不同的条件为嵌套层,执行不同的行为l例:大于50岁的男性参加网球比赛,女性参加羽毛球比赛。其他年龄的男性参加篮球比赛,女性参加排球比赛l分析:大于50岁是男、女性不同参赛的共同条件,是外层循环,同时其他年龄是else部分,也是一个共同条件外层为年龄部分,内层为性别部分另一个角度:性别是外层,则可分两个年龄段的内层4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断什么情况下使用嵌套?l例:大于50岁的男性参加网球比赛,女性参加羽毛球比赛。其他年龄的男性参加篮球比赛,女性
10、参加排球比赛以年龄为外层的嵌套方式:if(年龄50)if(性别=男)参加网球 if(性别=女)参加羽毛球else if(性别=男)参加篮球 if(性别=女)参加排球 4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断什么情况下使用嵌套?l例:大于50岁的男性参加网球比赛,女性参加羽毛球比赛。其他年龄的男性参加篮球比赛,女性参加排球比赛以性别为外层的嵌套方式:if(性别=男)if(年龄50)参加网球 else 参加篮球if(性别=女)if(年龄50)参加羽毛球 else 参加排球 4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的
11、if 语句实现多层判断什么情况下使用嵌套?l多个行为对应的条件具有互相排斥性:多个行为对应的条件具有互相排斥性:l例:根据分数评定成绩等级:A:90以上(含90);B:80以上(含80),90以下C:70以上(含70),80以下D:60以上(含60),70以下E:60以下4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断什么情况下使用嵌套?l多个行为对应的条件具有互相排斥性:多个行为对应的条件具有互相排斥性:l分析:每个分数,只能是其中一种条件。具有排斥性可使用并列的if语句来实现。但均不能有else子句部分。使用嵌套,在外层语句的else子句,是不
12、满足条件的情况。也就是把此条件排除在外。可再嵌套其他的情况。以此类推,第二层的else部分是排除了第一层条件、第二层条件的情况。这样一层层嵌套下去,直至所有条件都出现即可。4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断什么情况下使用嵌套?l多个行为对应的条件具有互相排斥性:多个行为对应的条件具有互相排斥性:l非嵌套的方式(设变量s为成绩):if(s=90)A 级if(s=80&s=70&s=60&s70)D 级if(s=90)A 级if(s=80&s=70&s=60&s=90)A 级else/小于90的情况下if(s=80)B 级else/小于8
13、0的情况下 if(s=70)C 级 else/小于70的情况下 if(s=60)D 级 else E 级4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断什么情况下使用嵌套?l多个行为对应的条件具有互相排斥性:多个行为对应的条件具有互相排斥性:l嵌套的方式(设变量s为成绩):对于这类嵌套程序,在程序书写上往往不采用缩进格式。而采用并列形式。使程序更易读if(s=90)A 级else if(s=80)B 级else if(s=70)C 级else if(s=60)D 级else E 级4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌
14、套的if 语句实现多层判断综合应用:判断闰年l判断方法(year%4=0&year%100!=0)|(year%400=0)l如何把一个逻辑表达式拆成多个if语句嵌套的形式与运算:使用两个if语句嵌套来实现或预算:使用两个if语句并列来实现(若两个条件存在包含关系,则需根据情况进行嵌套。逻辑或运算不存在先后关系,而程序语句的执行存逻辑或运算不存在先后关系,而程序语句的执行存在先后关系。在先后关系。非运算:使用if语句的else部分来实现4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断综合应用:判断闰年l判断方法(year%4=0&year%100!
15、=0)|(year%400=0)l按逻辑表达式拆为if语句:if(year%4=0)if(year%100=0)le=否else le=是else le=否if(year%400=0)le=是 /若year=2000,le如何变化4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断综合应用:判断闰年l判断方法(year%400=0)|(year%4=0&year%100!=0)l按逻辑表达式拆为if语句:if(year%400=0)le=是 if(year%4=0)if(year%100=0)le=否else le=是else le=否 /此顺序下,若
16、year=2000,le如何变化4.2 用用if语句实现选择结构语句实现选择结构l4.2.4 使用嵌套的if 语句实现多层判断综合应用:判断闰年l判断方法(year%4=0&year%100!=0)|(year%400=0)l由于闰年判断条件存在包含关系,需注意此点if(year%4=0)if(year%100=0)if(year%400=0)le=是 /year%400=0 else le=否else le=是 /year%4=0&year%100!=0else le=否4.2 用用if语句实现选择结构语句实现选择结构l4.3 使用switch 语句实现多分支选择结构switch语句的形式s
17、witch(表达式)case 常量表达式1:语句1case 常量表达式2:语句2case 常量表达式n:语句ndefault:语句n+14.2 用用if语句实现选择结构语句实现选择结构l4.3 使用switch 语句实现多分支选择结构switch语句使用说明lcase语句中“常量表达式”必须是常量,变量或表达式不能作为case语句的判断部分lcase语句一旦被执行,程序将不再进行判断,而是依次执行后续语句后续case和default的语句部分会被执行为避免这个问题,每个case语句后要加上break语句来结束switch语句。4.2 用用if语句实现选择结构语句实现选择结构l4.4 程序综合举
18、例输入平面上一个点的坐标,判断其是否在一个圆内(圆心坐标(2,3)半径为5)l分析:如何判断:判断一个点是否在圆内,数学方法为判断这个点到圆心的距离是否小于圆半径如何计算距离:平面上两个坐标点的距离计算,数学方法为 sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)其他:用户输入数据部分,输出部分细节:需用到数学函数库,坐标点可以是整数,但计算出的距离为实数。4.2 用用if语句实现选择结构语句实现选择结构l4.4 程序综合举例输入三个数到变量abc,将其值从大到小输出l分析:输出的是值,和变量名称没有关系,可以通过交换变量的方式来改变变量的内容,让abc如果a=b;如果a
19、=c;如果b=c;如上执行完毕,有abc打印abc的值4.2 用用if语句实现选择结构语句实现选择结构l4.4 程序综合举例判断一个五位数n5n4n3n2n1是否是回文数l分析:如何获取整数每一位的值:个位n1:整除10后的余数百位n2:整除10后的值再整除10后的余数如何判断回文:第五位n5的值等于第一位n1同时第四位n4的值等于第二位n24.2 用用if语句实现选择结构语句实现选择结构l4.4 程序综合举例判断一个五位数n5n4n3n2n1是否是回文数l另一种做法:获取前半部分和后半部分的值:前半部分n2n1:整除100后的余数后半部分n5n4:整除1000后的值判断回文的另一种思路:条件:n5=n1&n4=n2有:n5+n2=n4+n1有判断依据:(n5n4+n2n1)%11=0