第5章选择结构_第1页
第5章选择结构_第2页
第5章选择结构_第3页
第5章选择结构_第4页
第5章选择结构_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章选择结构 关系运算符和关系表达式关系运算符和关系表达式switch语句语句 if 语句语句逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式第五章第五章 选择结构程序设计选择结构程序设计第5章选择结构 5.1 关系运算符和关系表达式关系运算符和关系表达式一一. 关系运算符及其优先次序关系运算符及其优先次序优先级相同优先级相同(低)(低)x!=0不等于不等于!=(算术运算符算术运算符)优先级相同优先级相同(高)(高)i100小于小于=af3.14a=大于大于小于等于小于等于a+b c(a+b) a=bca=(bca=(bc)第5章选择结构二二. . 关系表达式关系表达式 1.1.用关系运算符将两

2、个表达式连接起来的用关系运算符将两个表达式连接起来的 式子,称关系表达式。式子,称关系表达式。算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式赋值表达式赋值表达式字符表达式字符表达式 算术运算符算术运算符 关系运算符关系运算符 赋值运算符赋值运算符高高低低例:例:a/21+3b (a=3)(b=5) ab)(bbab表达式的值为表达式的值为1 1 (ab) (ab)=c c表达式的值为表达式的值为1 1b+cab+cb dd=ab d的值为的值为1 1f=abcf=abc f f的值为的值为0 0关系表达式成立时(真)关系表达式成立时(真), , 其值为其值为1 1关系表达式不成立

3、时关系表达式不成立时( (假假), ), 其值为其值为0 0第5章选择结构一逻辑运算符及其优先次序一逻辑运算符及其优先次序 5.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式(xy)&(yz)逻辑与逻辑与&(关系运算符关系运算符)(x3)|(xb)逻辑非逻辑非!(算术运算符算术运算符)举例举例(赋值运算符赋值运算符)优先级优先级名称名称运算符运算符第5章选择结构ab!a!ba&ba|b真真真真真真假假假假真真假假假假假假假假假假假假假假假假假假假假真真真真真真真真真真真真真真真真第5章选择结构二二. . 逻辑表达式逻辑表达式1.1.用逻辑运算符将表达式连接起来的式子用逻辑运算符将表达式连接起

4、来的式子 就是逻辑表达式。就是逻辑表达式。算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式赋值表达式赋值表达式字符表达式字符表达式 例例: !a a+3 & b x y (i3)&(j=4) !(非)!(非)算术运算符算术运算符关系运算符关系运算符&和和赋值运算符赋值运算符 高高低低 p93第5章选择结构 逻辑表达式的值应该是一个逻辑量逻辑表达式的值应该是一个逻辑量“真真”或或“假假”。 C C给出逻辑运算结果时,以数值给出逻辑运算结果时,以数值1 1代表代表“真真”,以,以0 0代表代表“假假”,但判断一个量是否为,但判断一个量是否为“真真”时,以时,以0 0代表代表“假假”,

5、,以以非非0 0代表代表“真真”,即将一个非零的数值认作,即将一个非零的数值认作“真真”。例:例:a=4,b=5 !a a&b a b !a b 4&0 2 值为值为0值为值为1值为值为1值为值为1值为值为1第5章选择结构 逻辑运算符两侧的运算对象不但可以是逻辑运算符两侧的运算对象不但可以是0 0和和1 1,或,或者是者是0 0和非和非0 0的整数,也可以是字符型、实型或指针型的整数,也可以是字符型、实型或指针型等。系统最终以等。系统最终以0 0和非和非0 0来判定它们属于来判定它们属于“真真”或或“假假”。例如:。例如:c&c&d 值为值为 1 1(因为(因为c 和和d的的ASCII值都不为

6、值都不为0,按,按“真真”处理处理 ) 第5章选择结构ab!a!ba&ba|b非非0非非0非非0000非非01000000000111111 1第5章选择结构例:例:a&b&c abc在进行逻辑表达式的求在进行逻辑表达式的求解中,并不是所有的逻解中,并不是所有的逻辑运算都被执行,只是辑运算都被执行,只是在必须执行下一个逻辑在必须执行下一个逻辑运算符才能求出表达式运算符才能求出表达式的值时,才执行该运算的值时,才执行该运算符。符。非0000非非0非非010第5章选择结构例:例:a|b|c abc非0000非非0非非010对对&运算符来说,只运算符来说,只有有a0时,才继续执行右面时,才继续执行右

7、面的运算。对的运算。对|运算符来说,运算符来说,只有只有a=0, 才继续进行右面的才继续进行右面的运算。运算。第5章选择结构例:例:a=1 b=2 c=3 d=4 m=1 n=1 (m=ab) & (n=cd) 该逻辑表达式的值为:该逻辑表达式的值为:0该逻辑表达式执行结束后该逻辑表达式执行结束后m的值为:的值为:0该逻辑表达式执行结束后该逻辑表达式执行结束后n的值为:的值为:1第5章选择结构5.3 if 语句语句一一. if语句的三种形式语句的三种形式 1if(表达式)(表达式) 语句语句例:例:if (grade=60) printf(“Passed);grade=60grade=60pr

8、int Passedprint Passed假假真第5章选择结构xyxyprint “x”print “x”print “y”print “y”假假真真语句语句2语句语句1表达式表达式YN2if(表达式)(表达式) 语句语句 1 else 语句语句2例:例:if (xy) printf(%d,x); else printf(%d,y);第5章选择结构NN表达式表达式1表达式表达式2语句语句2表达式表达式m语句语句m 语句语句nYYNY语句语句13if(表达式(表达式1) 语句语句1 else if(表达式(表达式2) 语句语句2 else if(表达式(表达式m) 语句语句m else 语句语

9、句n第5章选择结构说明:说明:ifif后面的后面的“表达式表达式”一般为逻辑表达式或关系表达式,一般为逻辑表达式或关系表达式, 系统对表达式的值进行判断,若为系统对表达式的值进行判断,若为0 0按按“假假”处理处理, ,若若 为非为非0 0,按,按“真真”处理。处理。 if (x0) printf(%f,x); else printf(%f,-x);各有一个分号 后面两种形式的后面两种形式的ifif语句中,每个语句中,每个elseelse前面有一个分号,前面有一个分号, 不要错认为是两个语句不要错认为是两个语句, ,它们都属于同一个它们都属于同一个ifif语句,语句, elseelse不能单独

10、用。不能单独用。第5章选择结构 if 和和else后面可以使用复合语句,即用后面可以使用复合语句,即用“”将将n个个 语句括起来。语句括起来。例例: if (a+bc & b+ca & c+ab) s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(area=%6.2f,area); else printf(it is not a triangle);第5章选择结构void main() float a,b,t; scanf(%f,%f ,&a,&b); if(ab) t=a;a=b;b=t; /*复合语句复合语句*/ printf(%5.

11、2f,%5.2f ,a,b); abyesno交换交换a,b的的值值 空空abt方法方法1: eg5.1输入两个实数,按由小到大次序输出输入两个实数,按由小到大次序输出。第5章选择结构方法方法2:abyesno输出输出b,a 输出输出a,b main() float a,b; scanf(%f,%f,&a,&b); if(ab) printf(%f,%fn,b,a); else printf(%f,%fn,a,b); 第5章选择结构 eg5.2输入三个数,按由小到大顺序输出。输入三个数,按由小到大顺序输出。 void main( ) float a,b,c,t; scanf(%f,%f,%f,

12、&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.2f,a,b,c); tabc341217341234173434第5章选择结构二二. if语句的嵌套语句的嵌套 在在 if 语句中又包含一个或多个语句中又包含一个或多个 if 语句称为语句称为 if语句的嵌套。语句的嵌套。 if ( ) if ( ) 语句语句1 else 语句语句2 else if ( ) 语句语句3 else 语句语句4内嵌内嵌 if 语句语句内嵌内嵌 if 语句语句说明:应注意说明:应注

13、意 if 与与 else 的对应关系,的对应关系,else总是与它总是与它上面最近的上面最近的 if 配对,若配对,若if与与 else 的数目不一致,的数目不一致,可以加可以加 来确定配对关系。来确定配对关系。第5章选择结构eg5.3:有一函数:有一函数 输入一个输入一个X值,输出值,输出Y值值Y=-1 (X0) #include void main( ) int x,y; scanf(%d,&x); if(x=0) if (x= =0) y=0; else y=-1; else y=1; printf(x=%d,y=%dn,x,y); (p100)第5章选择结构if (x0) y=1;el

14、se y=0;结果结果:x=0 y=-1 x=-1 y=0 (P102 图图5-9)Y=-1 (X0)第5章选择结构三、条件运算符三、条件运算符 1.条件表达式条件表达式:取表达式取表达式 2 的值的值表达式表达式1取表达式取表达式 3 的值的值非非00if (ab) max=a;else max=b;max=(ab)?a:b; 2. 执行过程:如果表达式执行过程:如果表达式1为真,则条件表达式取表为真,则条件表达式取表 达式达式2的值,否则取表达式的值,否则取表达式3的值。的值。表达式表达式 1 ? 表达式表达式 2 : 表达式表达式 3第5章选择结构 说明:说明: 条件运算符是条件运算符是

15、C C语言中唯一的一个三目运算符。语言中唯一的一个三目运算符。 条件运算符优先于赋值运算符。条件运算符优先于赋值运算符。 条件运算符的结合方向为条件运算符的结合方向为 “右结合右结合”。 例:例:ab?a:cd?c:d 相当于相当于 ab?a:(cd?c:d) 表达式表达式 1 1、2 2、3 3可以是任意类型的。(字符型,可以是任意类型的。(字符型, 整形、实型)整形、实型) 例:例:x? a:b; xy? 1:1.5x? a:b; xy? 1:1.5 ”表达式表达式2”和和”表达式表达式3”可以是赋值表达式或函数表达式。可以是赋值表达式或函数表达式。 例:例:ab?(a=100): (b=

16、100); ab? printf(“%d”,a): printf(“%d”,b) 第5章选择结构 eg5.4eg5.4:输入一个字符,判断它是否为大写字母,如:输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母,如果不是,不转换。然果是,将它转换成小写字母,如果不是,不转换。然后输出最后得到的字符。后输出最后得到的字符。 #include void main( ) char ch; scanf(%c,&ch); ch=(ch= A & ch= Z )?(ch+32):ch; printf(%c,ch); A=ch60n);第5章选择结构若若grade= A ,则将输出则将输出: 8

17、5100 7084 6069 60 error switch(grade) case A: printf(85100n); case B: printf(7084n); case C: printf(6069n); case D: printf(60n); default : printf(errorn); break;break; break;break;若若grade=A , 则输出结果为:则输出结果为: 85100break语句可以使流程跳出语句可以使流程跳出switch结构,继续执行结构,继续执行switch语句下面的语句语句下面的语句第5章选择结构 给一百分制成绩,要求输出成绩等级给

18、一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为分以上为A ,80-89分为分为B,70-79分为分为C,60-69分为分为D,60分以下为分以下为E。(。(P111 5.6)根据grade确定分数段xx=Ax=Bx=Cx=Ex=D0876543219读入学生成绩gradegrade100YN输出x输入数据有误,结束第5章选择结构 #includevoid main( ) int grade; char x; scanf(%d,&grade); if (grade100) (grade0) printf(ndata errorn); else switch (grade/10)

19、case 10: case 9 : x=A;break; case 8 : x=B;break; case 7: x=C;break; case 6: x=D ; break; case 5: case 4: case 3: case 2: case 1: case 0: x= E ; printf(等级为等级为:%cn,x); 第5章选择结构 eg5-6: 求求 方程的解方程的解02cbxax有以下几种可能有以下几种可能: 0404040222acbacbacba1. ,不是二次方程。否则,不是二次方程。否则2. ,有两个相等实根。,有两个相等实根。3. ,有两个不等实根。,有两个不等实根。4. ,有两个共轭复根。,有两个共轭复根。第5章选择结构aacbq242aacbbx2412aacbbx2422计算复数的实部和虚部实部:abp2虚部:YYYNNN042 acb042 acb0a输出非二次方程输出两个相等的实根:ab2输出两个实根: x1,x2输出两个复根: p+qi, p-qi第5章选择结构 #include #include vo

温馨提示

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

评论

0/150

提交评论