第4章 选择结构程序设计(赵津燕).ppt
《第4章 选择结构程序设计(赵津燕).ppt》由会员分享,可在线阅读,更多相关《第4章 选择结构程序设计(赵津燕).ppt(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.1选择结构和条件判断选择结构和条件判断4.2用用if语句实现选择结构语句实现选择结构4.3关系运算符和关系表达式关系运算符和关系表达式4.4逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.5条件运算符和条件表达式条件运算符和条件表达式4.6选择结构的嵌套选择结构的嵌套4.7用用switch语句实现多分支选择结构语句实现多分支选择结构4.8选择结构程序综合举例选择结构程序综合举例第第第第4 4章章章章 选择结构程序设计选择结构程序设计选择结构程序设计选择结构程序设计在现实生活在现实生活中中,需要进行判断和选择的,需要进行判断和选择的情况是很多的情况是很多的u如果你在家,我去拜访你如果你在家,
2、我去拜访你u如果考试不及格,要补考如果考试不及格,要补考u如果遇到红灯,要停车等待如果遇到红灯,要停车等待u周末我们去郊游周末我们去郊游u70岁以上的老年人,入公园免票岁以上的老年人,入公园免票4.1选择结构和条件判断选择结构和条件判断在现实生活在现实生活中中,需要进行判断和选择的,需要进行判断和选择的情况是很多的情况是很多的处理处理这些这些问题,关键在于进行条件判断问题,关键在于进行条件判断由于程序处理问题的需要,在大多数程由于程序处理问题的需要,在大多数程序中都会包含选择结构,需要在进行下序中都会包含选择结构,需要在进行下一个操作之前先进行条件判断一个操作之前先进行条件判断4.1选择结构和
3、条件判断选择结构和条件判断C语言有两种选择语句语言有两种选择语句:(1)if语句语句,实现两个分支的选择结构,实现两个分支的选择结构(2)switch语句语句,实现多分支的选择结构,实现多分支的选择结构4.1选择结构和条件判断选择结构和条件判断例例4.1求求方程的根。方程的根。4.1选择结构和条件判断选择结构和条件判断开始开始结束结束输入输入a,b,c输出输出“a,b,c=”Yd=0Nx1=p+qd=b 2 4acp=-b/(2a)q=|d|1/2/(2a)x2=p-q输出输出x1,x2输出输出x1=p+qi输出输出x2=p-qiTFx1=p+qd=0输出输出“a,b,c=”输入输入a,b,c
4、d=b 2 4acp=-b/(2a)q=|d|1/2/(2a)x2=p-q输出输出x1,x2输出输出x1=p+qi输出输出x2=p-qi#include#include int main()double a,b,c,d,x1,x2,p,q;printf(a,b,c=);scanf(%lf,%lf,%lf,&a,&b,&c);d=b*b-4*a*c;p=-b/a/2;q=sqrt(fabs(d)/(2*a);4.1选择结构和条件判断选择结构和条件判断if(d=0)x1=p+q;x2=p-q;printf(x1=%5.2lf,x2=%5.2lfn,x1,x2);else printf(x1=%5.
5、2lf+%5.2lfin,p,q);printf(x2=%5.2lf-%5.2lfin,p,q);return 0;4.1选择结构和条件判断选择结构和条件判断执行该程序3次,以便解3个方程:解方程:x 2+2x+1=0,该方程有相等二实根:a,b,c=1,2,1x1=-1.00,x2=-1.00解方程:x 2+2x-8=0,该方程有不相等二实根:a,b,c=1,2,-8x1=2.00,x2=-4.00解方程:x 2+2x+5=0,该方程有一对共轭虚根:a,b,c=1,2,5x1=-1.00+2.00ix2=-1.002.00i4.1选择结构和条件判断选择结构和条件判断4.2用用if语句实现选择
6、结语句实现选择结构构4.2.1用用if语句处理选择结构举例语句处理选择结构举例4.2.2if语句的一般形式语句的一般形式4.2.1用用if语句处理选择结构举例语句处理选择结构举例例例4.2输入两个实数,按代数值由小到大的顺输入两个实数,按代数值由小到大的顺序输出这两个数。序输出这两个数。解题思路:解题思路:u只需要做一次比较,然后进行一次交换即可只需要做一次比较,然后进行一次交换即可u用用if语句实现条件判断语句实现条件判断u关键是怎样实现两个变量值的互换关键是怎样实现两个变量值的互换AB互换前互换前AB互换后互换后4.2.1用用if语句处理选择结构举例语句处理选择结构举例ABC4.2.1用用
7、if语句处理选择结构举例语句处理选择结构举例ABC4.2.1用用if语句处理选择结构举例语句处理选择结构举例ABC 4.2.1用用if语句处理选择结构举例语句处理选择结构举例#includeintmain()floata,b,t;scanf(%f,%f,&a,&b);if(ab)t=a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);return0;将将a和和b的值互换的值互换如果如果ab#includeintmain()floata,b,t;scanf(%f,%f,&a,&b);if(ab)t=a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);retur
8、n0;选择结构,用选择结构,用if语句实现的语句实现的例例4.3输入输入3个数个数a,b,c,要求按由小到大,要求按由小到大的顺序输出。的顺序输出。解题思路:可以先用伪代码写出算法:解题思路:可以先用伪代码写出算法:uifab,a和和b对换对换(a是是a、b中的小者)中的小者)uifac,a和和c对换对换(a是三者中最小者)是三者中最小者)uifbc,b和和c对换对换(b是三者中次小者是三者中次小者)u顺序输出顺序输出a,b,c#includeintmain()floata,b,c,t;scanf(%f,%f,%f,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a
9、=c;c=t;if(bc)t=b;b=c;c=t;printf(%5.2f,%5.2f,%5.2fn,a,b,c);return0;如果如果ab,将,将a和和b对换对换a是是a、b中的小者中的小者#includeintmain()floata,b,c,t;scanf(%f,%f,%f,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(%5.2f,%5.2f,%5.2fn,a,b,c);return0;如果如果ac,将,将a和和c对换对换a是是三者三者中的小者中的小者#includeintmain()fl
10、oata,b,c,t;scanf(%f,%f,%f,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(%5.2f,%5.2f,%5.2fn,a,b,c);return0;如果如果bc,将,将b和和c对换对换b是是三者三者中的中的次次小者小者if(表达式表达式)语句语句1else语句语句2关系表达式关系表达式逻辑表达式逻辑表达式数值表达式数值表达式方括号内的部分为可选的方括号内的部分为可选的4.2.2if语句的一般形式语句的一般形式4.2.2if语句的一般形式语句的一般形式if(表达式表达式)语句语句1e
11、lse语句语句2简单的语句简单的语句复合语句复合语句另一个另一个if语句语句等等最常用的最常用的3种种if语句语句形式形式:1.if(表达式表达式)语句语句1(没有没有else子句子句)2.if(表达式表达式)语句语句1else语句语句2(有有else子句子句)3.if(表达式)(表达式)语句语句elseif(表达式)(表达式)语句语句elseif(表达式)(表达式)语句语句 elseif(表达式)(表达式)语句语句else语句语句m+1(在在else部分又嵌套了多层的部分又嵌套了多层的if语句语句)if(number500)cost=0.15;elseif(number300)cost=0.
12、10;elseif(number100)cost=0.075;elseif(number50)cost=0.05;elsecost=0;if(number500)cost=0.15;elseif(number300)cost=0.10;elseif(number100)cost=0.075;elseif(number50)cost=0.05;elsecost=0;等价于等价于分号不能丢分号不能丢说明:说明:(1)整个整个if语句可写在多行上,也可写在一行上语句可写在多行上,也可写在一行上但但都是一个整体,属于同一个语句都是一个整体,属于同一个语句(2)“语句语句1”“语句语句m”是是if中的内
13、嵌语句中的内嵌语句内嵌语句也可以是一个内嵌语句也可以是一个if语句语句(3)“语句语句1”“语句语句m”可以是简单的语句,也可以是简单的语句,也可以是复合语句可以是复合语句4.3关系运算符和关系表达式关系运算符和关系表达式4.3.1关系运算符及其优先次序关系运算符及其优先次序4.3.2关系表达式关系表达式关系运算符关系运算符:用来对两个数值进行比较用来对两个数值进行比较的的比较运算符比较运算符语言提供种关系运算符:语言提供种关系运算符:(小于小于)=(小于或等于小于或等于)(大于大于)=(大于或等于大于或等于)=(等于等于)!=(不等于不等于)优先级相同优先级相同(高高)优先级相同优先级相同(
14、低低)4.3.1关系运算符及其优先次序关系运算符及其优先次序关系关系、算术算术、赋值运算符赋值运算符的优先级的优先级算术运算符算术运算符(高高)赋值运算符赋值运算符(低低)关系运算符关系运算符ca+b等效于等效于c(a+b)ab=c等效于等效于(ab)=ca=bc等效于等效于a=(bc等效于等效于a=(bc)4.3.1关系运算符及其优先次序关系运算符及其优先次序4.3.2关系表达式关系表达式关系表达式关系表达式u用关系运算符将两个数值或数值表达式连接起用关系运算符将两个数值或数值表达式连接起来的式子来的式子u关系表达式的值是一个逻辑值,即关系表达式的值是一个逻辑值,即“真真”或或“假假”u在在
15、C的逻辑运算中,以的逻辑运算中,以“”代表代表“真真”,以,以“”代表代表“假假”4.4逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.4.1逻辑运算符及其优先次序逻辑运算符及其优先次序4.4.2逻辑表达式逻辑表达式4.4.3逻辑型变量逻辑型变量4.4.1逻辑运算符及其优先次序逻辑运算符及其优先次序3种逻辑运算符:种逻辑运算符:&(逻辑与逻辑与)|(逻辑或逻辑或)!(逻辑非逻辑非)&和和|是双目是双目(元元)运算符运算符!是一目是一目(元元)运算符运算符逻辑表达式逻辑表达式u用逻辑运算符将关系表达式或其他逻辑量连接起用逻辑运算符将关系表达式或其他逻辑量连接起来的式子来的式子判断判断年龄年龄在在
16、13至至17岁岁之内?之内?age=13&age=17判断判断年龄小于年龄小于12或大于或大于65?age654.4.1逻辑运算符及其优先次序逻辑运算符及其优先次序ab!a!ba&ba|b 真真真真假假假假真真真真真真假假假假真真假假真真假假真真真真假假假假真真假假假假真真真真假假假假逻辑运算的真值表逻辑运算的真值表4.4.1逻辑运算符及其优先次序逻辑运算符及其优先次序逻辑运算符的优先次序逻辑运算符的优先次序!&|(!为三者中最高为三者中最高)与其他运算符的优先次序与其他运算符的优先次序!(高)(高)算术运算符算术运算符关系运算符关系运算符&和和|赋值运算符赋值运算符(低)(低)4.4.1逻辑
17、运算符及其优先次序逻辑运算符及其优先次序4.4.2逻辑表达式逻辑表达式逻辑表达式的值应该是逻辑量逻辑表达式的值应该是逻辑量“真真”或或“假假”编译系统在编译系统在表示表示逻辑运算逻辑运算结果结果时时u以数值以数值1代表代表“真真”,以,以0代表代表“假假”但在但在判断判断一个量是否为一个量是否为“真真”时时u以以0代表代表“假假”,以非,以非0代表代表“真真”注意:注意:将一个非零的数值认作为将一个非零的数值认作为“真真”(1)若若a=4,则,则!a的值为的值为0(2)若若a=4,b=5,则,则a&b的值为的值为1(3)a和和b值分别为值分别为4和和5,则则a|b的值为的值为1(4)a和和b值
18、分别为值分别为4和和5,则则!a|b的值为的值为1(5)4&0|2的值为的值为14.4.2逻辑表达式逻辑表达式修改后的修改后的逻辑运算真值表逻辑运算真值表ab!a!ba&ba|b 非非0非非00011非非000101假假非非01001假假011004.4.2逻辑表达式逻辑表达式判别某一年是否闰年,判别某一年是否闰年,用用逻辑表达式表示逻辑表达式表示闰年的条件是符合下面二者之一:闰年的条件是符合下面二者之一:能被能被4整除,但不能被整除,但不能被100整除,如整除,如2008能被能被400整除,如整除,如2000u(year%4=0&year100!=0)|year%400=0u如果表达式值为如
19、果表达式值为1,则闰年;否则为非闰年,则闰年;否则为非闰年4.4.2逻辑表达式逻辑表达式4.4.3逻辑型变量逻辑型变量这是这是C99所增加的一种数据类型所增加的一种数据类型可以将关系运算和逻辑运算的结果存到一个逻可以将关系运算和逻辑运算的结果存到一个逻辑型变量中,以便于分析和运算辑型变量中,以便于分析和运算4.5条件运算符和条件表达式条件运算符和条件表达式有一种有一种if语句,当被判别的表达式的值语句,当被判别的表达式的值为为“真真”或或“假假”时,都执行一个赋值时,都执行一个赋值语句且向同一个变量赋值语句且向同一个变量赋值如:如:if(ab)max=a;elsemax=b;max=(ab)?
20、a:b;条件运算符条件运算符有一种有一种if语句,当被判别的表达式的值语句,当被判别的表达式的值为为“真真”或或“假假”时,都执行一个赋值时,都执行一个赋值语句且向同一个变量赋值语句且向同一个变量赋值如:如:if(ab)max=a;elsemax=b;max=(ab)?a:b;条件条件表达式表达式4.5条件运算符和条件表达式条件运算符和条件表达式条件表达式的一般形式为条件表达式的一般形式为表达式表达式?表达式表达式:表达式表达式4.5条件运算符和条件表达式条件运算符和条件表达式条件运算符的执行顺序:条件运算符的执行顺序:u求解表达式求解表达式1u若为非若为非0(真)则求解表达式(真)则求解表达
21、式2,此时表达式,此时表达式2的的值就作为整个条件表达式的值值就作为整个条件表达式的值u若表达式若表达式1的值为的值为0(假),则求解表达式(假),则求解表达式3,表,表达式达式3的值就是整个条件表达式的值的值就是整个条件表达式的值4.5条件运算符和条件表达式条件运算符和条件表达式条件运算符优先于赋值运算符条件运算符优先于赋值运算符条件运算符的结合方向为条件运算符的结合方向为“自右至左自右至左”以下为合法的使用方法:以下为合法的使用方法:uab?(max=a):(max=b);uab?printf(“%d”,a):printf(“%d”,b);4.5条件运算符和条件表达式条件运算符和条件表达式
22、例例4.4输入一个字符,判别它是否大写字母,输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。转换。然后输出最后得到的字符。4.5条件运算符和条件表达式条件运算符和条件表达式解题思路:用条件表达式来处理,当字母是大解题思路:用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换写时,转换成小写字母,否则不转换4.5条件运算符和条件表达式条件运算符和条件表达式ch=(ch=A&ch=Z)?(ch+32):ch;#includeintmain()charch;scanf(%c,&ch);ch=(c
23、h=A&ch=Z)?(ch+32):ch;printf(%cn,ch);return0;4.5条件运算符和条件表达式条件运算符和条件表达式4.6选择结构的嵌套选择结构的嵌套在在if语句中又包含一个或多个语句中又包含一个或多个if语句称为语句称为if语句的嵌套语句的嵌套一般形式:一般形式:if()if()语句语句1else语句语句2elseif()语句语句3else语句语句4内嵌内嵌ifelse总是与它上面最总是与它上面最近的未配对的近的未配对的if配对配对在在if语句中又包含一个或多个语句中又包含一个或多个if语句称为语句称为if语句的嵌套语句的嵌套if()if()语句语句1else语句语句2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 选择结构程序设计赵津燕 选择 结构 程序设计 赵津燕
限制150内