计算机二级C语言学习if章节ppt课件_第1页
计算机二级C语言学习if章节ppt课件_第2页
计算机二级C语言学习if章节ppt课件_第3页
计算机二级C语言学习if章节ppt课件_第4页
计算机二级C语言学习if章节ppt课件_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第三章选择机构程序设计第三章选择机构程序设计主要内容主要内容3.1 3.1 关系运算符和关系表达式关系运算符和关系表达式3.2 3.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式3.3 if3.3 if语句语句3.4 switch3.4 switch语句语句3.5 3.5 程序举例程序举例23.1 关系运算符和关系表达式关系运算符和关系表达式( (一一).).关系运算符及其优先次序关系运算符及其优先次序 ( (小于小于) )= ( ( (大于大于) )= (= (大于或等于大于或等于) )= (= (等于等于) )!= (!= (不等于不等于) )优先级一样高优先级一样高优先级一样低优先级

2、一样低阐明:阐明:关系运算符的优先级低于算术运算符关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符关系运算符的优先级高于赋值运算符33.1 关系运算符和关系表达式关系运算符和关系表达式( (二二).).关系表达式关系表达式用关系运算符将两个表达式可以是算术表达式或用关系运算符将两个表达式可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式,字符表达式关系表达式,逻辑表达式,赋值表达式,字符表达式 接起来的式子,称关系表达式接起来的式子,称关系表达式例:例:ab,a+bb+c,(a=3)(b=5),ab,a+bb+c,(a=3)(b=5),a a b)(bb)(bb的值为的值为

3、“真,表达式的值为真,表达式的值为1。41. 1. 有三个有三个& & (与与): 两边为两边为1,结果为,结果为1| 或:两边有一个为或:两边有一个为1,结果为,结果为1! 非:非非:非1为为0,非,非0为为12. 优先级:!的优先级高于优先级:!的优先级高于&和和|逻辑运算与其他运算相比:逻辑运算与其他运算相比: 非的优先级最高,与和或低非的优先级最高,与和或低于其他于其他3. 结合性:与和或是从左向右,非是从右向左结合性:与和或是从左向右,非是从右向左( (一一).).逻辑表达式及其优先顺序逻辑表达式及其优先顺序3.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式53.2 逻辑运算符和逻

4、辑表达式逻辑运算符和逻辑表达式例:设例:设a=4a=4,b=5b=5:!a!a的值为的值为0 a&b0 a&b的值为的值为1 1a|ba|b的值为的值为1 !a|b1 !a|b的值为的值为1 14&0|24&0|2的值为的值为1 1任何非零的数值被认作任何非零的数值被认作“真真二二 逻辑表达式逻辑表达式2. 表达式的值为逻辑的表达式的值为逻辑的1和和0,表示真与假,表示真与假用逻辑运算符将关系运算表达式或逻辑量衔接起来构成用逻辑运算符将关系运算表达式或逻辑量衔接起来构成逻辑表达式逻辑表达式63.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式补充:在逻辑表达式的求解中,并不是一切的逻辑运算符补

5、充:在逻辑表达式的求解中,并不是一切的逻辑运算符都要被执行。都要被执行。(1)a&b&c (1)a&b&c 只需只需a a为真时,才需求判别为真时,才需求判别b b的值,只需的值,只需a a和和b b都为真时,才需求判别都为真时,才需求判别c c的值。的值。(2)a|b|c (2)a|b|c 只需只需a a为真,就不用判别为真,就不用判别b b和和c c的值,只需的值,只需a a为假,才判别为假,才判别b b。a a和和b b都为假才判别都为假才判别c c例例:(m=ab)&(n=cd)当当a=1,b=2,c=3,d=4,m和和n的原值为的原值为1时,由于时,由于“ab的值的值为为0,因此,因

6、此m=0,而,而“n=cd不被执行,因此不被执行,因此n的值不是的值不是0而而仍坚持原值仍坚持原值1。73.3 if语句语句一一.If.If语句的三种根本方式语句的三种根本方式(1)if (1)if 表达式表达式 语句语句; ;例:例: if(xy) printf( if(xy) printf(“%d%d,x);,x);表达式表达式语句语句真非真非0假假083.3 if语句语句(2)if(2)if(表达式表达式) ) 语句语句1;1; else else 语句语句2;2;例:例: if (xy) printf( if (xy) printf(“%d%d,x);,x); else printf(

7、 else printf(“%d%d,y);,y); 条件条件 语句语句1 语句语句2YN91011123.3 if语句语句(3)if(3)if表达式表达式1 1语句语句1 1 else if( else if(表达式表达式2)2)语句语句2 2 else if( else if(表达式表达式3)3)语句语句3 3 else if( else if(表达式表达式m)m)语句语句m m else else 语句语句n n13143.3 if语句语句二二.If.If语句的嵌套语句的嵌套 格式格式: if表达式表达式 if( 表达式表达式1 语句语句1; else 语句语句2 ; else if (

8、表达式表达式2语句语句3; else 语句语句4;判别表达式的值,假设为非判别表达式的值,假设为非0,再判别表达式,再判别表达式1的值,的值,非非0执行语句执行语句1,否那么执行语句,否那么执行语句2。假设表达式的值。假设表达式的值为为0,再判别表达式,再判别表达式2的值,非的值,非0执行语句执行语句3,否那么执,否那么执行语句行语句4。155.3 if语句语句表达式表达式语句语句1语句语句2语句语句3语句语句4表达式表达式2表达式表达式1111000在一个在一个if构造中,包含一个或多个构造中,包含一个或多个if构造构造1617183.3 if语句语句匹配规那么:匹配规那么:elseelse

9、总是与它上面的,最近的,一致复合语句中的,未配总是与它上面的,最近的,一致复合语句中的,未配对的对的ifif语句配对。语句配对。例:例:If( )If( )if( ) if( ) 语句语句1;1;elseelseif( ) if( ) 语句语句2;2;else else 语句语句3;3;例:例:If( )If( )if( ) if( ) 语句语句1;1;elseelseif( ) if( ) 语句语句2;2;else else 语句语句3;3;当当ifif和和elseelse数目不同时,可以加花括号来确定配对关系。数目不同时,可以加花括号来确定配对关系。193.3 if语句语句1 1、条件运算

10、符、条件运算符 ? ?和和: ,: ,它们与三个操作数组组成三元运算。它们与三个操作数组组成三元运算。2 2、 方式为方式为: : ? ? :33 3、 求值规那么和表达式的值求值规那么和表达式的值: : 真真( (非非0),0),求解表达式求解表达式2 2 求解表达式求解表达式1 1 条件表达式条件表达式的值的值 假假(0),(0),求解表达式求解表达式3 3例如例如: : int max,a=5;b=3; int max,a=5;b=3;max=ab?a:b maxmax=ab?a:b max及赋值表达式的值均为及赋值表达式的值均为5;5; ab?a:b+1 ab时将时将a的值赋给的值赋给

11、max,当,当ab时将时将b的值赋给的值赋给max,可以看到无论可以看到无论ab能否满足,都是向同一个变量赋值。能否满足,都是向同一个变量赋值。 可以用下面的条件运算符来处置:可以用下面的条件运算符来处置: ? ;213.3 if语句语句例例5.45.4输入一个字符,判别它能否大写字母,假设是,将输入一个字符,判别它能否大写字母,假设是,将它转换成小写字母;假设不是,不转换。然后输出最后它转换成小写字母;假设不是,不转换。然后输出最后得到的字符。得到的字符。 #include #include void main ( ) void main ( ) char ch; char ch; scan

12、f(%c,& ch); scanf(%c,& ch); ch=(ch=A& ch=A& ch=Z)?(ch+32):ch; printf(%cn,ch); printf(%cn,ch); 假设字符变量ch的值为大写字母,那么条件表达式的值为,即相应的小写字母。假设ch的值不是大写字母,那么条件表达式的值为,即不进展转换。 222324252627282930313233343536373839405.4 switch语句语句格式:格式:switch(表达式表达式) case 常量表达式常量表达式1: 语句语句1 case 常量表达式常量表达式2: 语句语句2 . case 常量表达式常量表达式

13、n: 语句语句n default: 语句语句n+1 先计算表达式的值,判别此值能否先计算表达式的值,判别此值能否与某个常量表达式的值匹配,假设与某个常量表达式的值匹配,假设有,控制转向其后相应的语句,假有,控制转向其后相应的语句,假设无,检查设无,检查 default。多重分支的条件多重分支的条件语句语句 switch语句1常量常量1?计算表达式计算表达式的值的值语句语句2常量常量2语句语句n+1default?41 补充:补充:后面括弧内的后面括弧内的“表达式,表达式, 规范允许规范允许 它为任何类型。它为任何类型。(2) 当表达式的值与某一个后面的常量表达式的值相当表达式的值与某一个后面的

14、常量表达式的值相 等时,就执行此后面的语句,假设一切的等时,就执行此后面的语句,假设一切的 中的常量表达式的值都没有与表达式的值匹配的,就执行中的常量表达式的值都没有与表达式的值匹配的,就执行 后面的语句。后面的语句。(3) 每一个的常量表达式的值必需互不一样,否那么就每一个的常量表达式的值必需互不一样,否那么就 会出现相互矛盾的景象对表达式的同一个值,有两种或会出现相互矛盾的景象对表达式的同一个值,有两种或 多种执行方案。多种执行方案。5.4 switch语句语句425.4 switch语句语句(4) (4) 各个和的出现次序不影响执行结各个和的出现次序不影响执行结 果。果。 (5) (5)

15、 执行完一个后面的语句后,流程控制转移到下一执行完一个后面的语句后,流程控制转移到下一 个继续执行。在执行语句时,根据个继续执行。在执行语句时,根据后面表达式的值找到匹配的入口标号,就从此标后面表达式的值找到匹配的入口标号,就从此标号开场执行下去,不再进展判别。应该在执行一个分号开场执行下去,不再进展判别。应该在执行一个分支后支后, ,可以用一个语句来终止可以用一个语句来终止switchswitch语句的执行。语句的执行。 (6) (6) 多个可以共用一组执行语句。多个可以共用一组执行语句。 435.5 程序举例程序举例例例5 56 6 求方程的解。求方程的解。根本的算法:根本的算法: ,不是

16、二次方程。,不是二次方程。 ,有两个相等实根。,有两个相等实根。 ,有两个不等实根。,有两个不等实根。 ,有两个共轭复根。,有两个共轭复根。445.5 程序举例程序举例 程序如下:#include #include void main ( ) float a,b,c,disc,x1,x2,realpart,imagpart;scanf(%f,%f,%f,&a,&b,&c);printf(the equation );if(fabs(a)=1e-6)printf(is not a quadraticn);else disc=b*b-4*a*c;if(fabs(disc)1e-6) else if(disc1e-6)x1=(-b+sqrt(disc)/(2x1=(-b+sqrt(disc)/(2* *a);a); x2=(-b-sqrt(disc)/(2 x2=(-b-sqrt(disc)/(2* *a);a); printf( printf(“has distinct real roots:%8.4f has distinct real roots:%8.4f and %8.4fnand %8.4fn,x1,x2);,x1,x2); else elserealpart=-b/(2realpart=-b/(2* *a);a); imagpart=sqrt(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论