C语言第章选择结构程序设计3_第1页
C语言第章选择结构程序设计3_第2页
C语言第章选择结构程序设计3_第3页
C语言第章选择结构程序设计3_第4页
C语言第章选择结构程序设计3_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第5章选择结构程序设计掌握关系运算符的用法能够计算关系表达式的值掌握逻辑运算符的用法能够计算逻辑表达式的值掌握if语句的三种常用格式掌握多分支语句能够编写较复杂的程序关系运算符和表达式关系运算符种类:<<===>=>!=结合方向:自左向右优先级别:<<=>>===!=优先级6(高)优先级7(低)例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)关系表达式的值:是逻辑值“真”或“假”,用1和0表示例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表达式值1//表达式值1//表达式值0//d=1//f=0关系运算注意:例若a=0;b=0.5;x=0.3;则a<=x<=b的值为

0例5>2>7>8在C中是允许的,值为0例inti=1,j=7,a;a=i+(j%4!=0);则a=2例‘a’>0结果为‘A’>100结果为10例注意区分“=”与“==”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);例应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为可改写为:fabs(1.0/3.0*3.0-1.0)<1e-60ab!a!ba&&ba||b真假真假假假真真逻辑运算符和表达式逻辑运算符种类:!&&||逻辑运算真值表C语言中,运算量:0表示“假”,非0表示“真”,运算结果:0表示“假”,1表示“真”,真假假假假假真真假假真真真假真真!(2)&&(11)||(12)高低例a<=x&&x<=ba>b&&x>ya==b||x==y!a||a>b优先级:结合方向:!:从右向左&&:从左向右||:从左向右//(a<=x)&&(x<=b)

//(a>b)&&(x>y)//(a==b)||(x==y)//(!a)||(a>b)例a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’值为1值为0值为1值为1值为1值为1//(5>3)&&2||(8<(4-(!0)))值为1短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符例a&&b&&c//只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值例a||b||c//只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值例a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)//结果m=0,n=1条件运算符与表达式一般形式:expr1?expr2:expr3执行过程功能:相当于条件语句,但不能取代一般if语句例if(a>b)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,a>b?a:b);例求a+|b|printf(“a+|b|=%d\n”,b>0?a+b:a-b);expr1取expr2值取expr3值非0=0例(a==b)?’Y’:’N’(x%2==1)?1:0(x>=0)?x:-x(c>=‘a’&&c<=‘z’)?c-’a’+’A’:c条件运算符可嵌套

如x>0?1:(x<0?-1:0)优先级:13结合方向:自右向左

如a>b?a:c>d?c:da>b?a:(c>d?c:d)expr1、expr2、expr3类型可不同,表达式值取较高的类型例x?‘a’:‘b’//x=0,表达式值为‘b’;x‡0,表达式值为‘a’x>y?1:1.5//x>y,值为1.0;x<y,值为1.5选择型程序设计if语句(条件选择语句)if语句的三种形式形式一:格式:if(expression)statement执行过程:exprstatement非0=0例:if(x>y)printf(“%d”,x);exprstatement1statement2非0=0形式二:格式:if(expression)statement1elsestatement2执行过程:例:if(x>y)max=x;elsemax=y;形式三:格式:if(expr1)statement1elseif(expr2)statement2elseif(expr3)statement3…...[elsestatementn]expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0执行过程:

例:if(salary>1000)index=0.4;elseif(salary>800)index=0.3;elseif(salary>600)index=0.2;elseif(salary>400)index=0.1;elseindex=0;如:if(a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(‘a’)printf(“%d”,’a’);说明:if后面的表达式类型任意语句可以是复合语句if(x)if(x!=0)if(!x)if(x==0)例考虑下面程序的输出结果:#include<stdio.h>main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf(“%d,%d\n”,x,y);}CompileError!#include<stdio.h>voidmain(){intx,y;printf("Enteraninteger:");scanf("%d",&x);y=x;

if(y<0)y=-y;printf("\ninteger:%d--->absolutevalue:%d\n",x,y);}例求一个数的绝对值运行:Enteraninteger:-12integer:-12--->absolutevalue:12#include<stdio.h>voidmain(){inta,b;printf("Enterintegera:");scanf("%d",&a);printf("Enterintegerb:");scanf("%d",&b);

if(a==b)printf("a==b\n");elseprintf("a!=b\n");}例输入两个数并判断两数相等否运行:Enterintegera:12

Enterintegerb:12a==b运行:Enterintegera:12

Enterintegerb:9a!=b#include<stdio.h>voidmain(){charc;printf("Enteracharacter:");c=getchar();if(c<0x20)printf("Thecharacterisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thecharacterisadigit\n");elseif(c>='A'&&c<='Z')printf("Thecharacterisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thecharacterisalowerletter\n");elseprintf("Thecharacterisothercharacter\n");}例判断输入字符种类运行:Enteracharacter:Thecharacterisacontrolcharacter运行:Enteracharacter:8Thecharacterisadigit运行:Enteracharacter:DThecharacterisacapitalletter运行:Enteracharacter:hThecharacterisalowerletter运行:Enteracharacter:F1Thecharacterisothercharacter将3个整偿数按韵从小乓到大弃的顺斧序排叶列#i乔nc装lu园de令<st粉di筛o.跪h>vo折id泰m甘ai摧n(兴){in典ta,痰b,烈c,纪t;sc敌an殊f(驾"%大a%b霸%c"四,&耻a,镜&b唐,&蚕c);if兽(a>b少){t=毛a;a=脸b;b=蒙t;}if彩(a>c接){t=爬a;a=锹c;c=坏t;}if商(b>c桑){t=任b;b=掘c;c=倡t;}pr饰in宫tf岁("箩%d洁,%支d,梦%d释\n举",硬a,与b,母c);}找到最小数思考伐:如剩何对3个浮乘点数猎排序炮?if语句胆嵌套:if(expr1)if(expr2)statement1elsestatement2elseif(expr3)statement3elsestatement4内嵌if内嵌ifif(expr1)if(expr2)statement1elsestatement2内嵌ifif(expr1)if(expr2)statement1elsestatement3

内嵌ifif(expr1)statement1elseif(expr3)statement3elsestatement4内嵌if例魄输入丧两数贞并判杯断其糖大小悔关系#i盟nc寒lu升de颤<st岔di戒o.锅h>ma泪in忆(){in鄙tx,浇y;pr西in男tf昆("切En笛te谅rin累te土ge锈r绑x,量y:邮")雁;sc跟an倡f(起"%饥d,量%d两",冲&x于,&常y);if债(x宏!=涛y)if端(x捡>y虏)pr略in段tf浴("将X>Y败\n辛")蜻;el秀sepr费in丸tf叙("脂X<Y宅\n得")生;el债sepr蹦in洗tf恳("够X==懂Y\勒n"顿);}运行使:En袍te贴r擦i范nt眯eg滔er遮x,台y:污12喘,2德3X<削YEn顺te仍r封i敲nt少eg姑er卖x,精y:胀12械,6X>植YEn侧te派r桌i粘nt勉eg伏er乌x,释y:火12都,1哄2X=码=Yif拴~怪el育se配对筋原则室:缺省至{肉}时朋,el艰se总是奖和它岔上面腿离它姓最近暗的未百配对骨的if配对if(……)if(……)if(……)else…...else…...else…...例:if系(乱a=悄=b常)if买(b荣==平c)pr桌in旗tf路(“件a==掀b=踏=c沈”)砖;el伪sepr损in家tf榨(“少a!=渣b”慕);修改兆:if捡(惕a=柔=b柴){级i灶f(慈b=挡=c钢)pr械in蹦tf蹲(“笔a==堤b=隙=c丘”)竿;}el鞭sepr榨in竭tf添(“笨a!=驴b”素);实现if摇~布e最ls姐e正确霉配对药方法催:加市{翻}例员考窃虑下演面程醒序输恐出结稠果:ma辣in孝(){in绿tx=秘10扭0,委a=犬10锐,b卸=2割0;in析tv1趣=5订,v由2=会0;if疏(a呼<b色)if虾(b寇!=哀15家)if遵(!恒v1红)x=垂1;el鲁seif宝(v意2)层x=寒10骨;x=迈-1脏;pr来in愈tf溜(“瞎%d亦”,肃x);}结果畏:-1sw查it罢ch语句(开关幸分支与语句)一般限形式染:sw互it皱ch驻(表达撑式){这c美as博e扑E1勺:语句蕉组1;br忌ea界k;ca苍se傍E音2:语句役组2;br仗ea焦k;……幼.ca涌se雅En练:语句咱组n;br拦ea昏k;[d庭ef撒au钱lt贞:语句草组;br吹ea齐k;首]}执行浴过程戒:switch表达式语句组1语句组2语句组n语句组…...E1E2Endefaultcase

说明与:E1挂,E平2,伯…E狸n是常量缩慧表达添式,且雨值必洒须互抱不相亮同语句纹标号蓄作用惹,必笋须用br承ea邻k跳出ca垮se后可聋包含捡多个缠可执颈行语旁句,破且不扶必加趟{妙}sw森it苗ch可嵌案套多个ca筝se可共浑用一弦组执降行语笋句如:……ca这se白‘软A’溉:ca梨se风‘刑B’绢:ca菠se竹‘片C’号:pr帖in凝tf垃(“陕sc段or窜e>6援0\总n”饱);br虎ea朝k;……描..例sw踪蝶it雪ch境(s悬co砍re输){仿ca仰se涛5:pr腊in皆tf简(“至Ve较rygo啦od限!”艰);ca绒se冠4:pr弱in寒tf叉(“失Go闻od!”浴);ca肢se优3:pr弦in甘tf你(“望Pa耕ss!”厅);ca期se舍2:pr根in抄tf背(“逆Fa瓣il!”敏);de森fa围ul浆t升:pr幼in认tf纤(“茂da泄taer揭ro鬼r!煮”)命;}运行嫂结果翠:sc仙or仁e为5品时,昂输出名:Ve纳ry挑g坑oo最d!猾G泽oo墓d!敢P推as欢s!秋F难ai煮l!交d什at贺a烦er颜ro速r!例vo够id胀m跟ai泊n(略){in衔tx=巩1,芹y=摊0,摘a=群0,吗b=宗0;sw兄it臂ch罗(x将){滴c驰as置e殿1榜:sw语it逢ch猫(y昂){丈ca馅se全0津:编a+架+;泡br启ea惊k;ca板se穴1泉:网b+净+;涝br德ea杨k;}ca石se字2:吧a+叛+;已b+患+;孝b蒙re书ak炕;ca海se渗3:飞a+您+;波b+呜+;}pr泡in涂tf铁(“疤\n思a=%月d,纷b=宵%d壁”,膨a,创b)这;}运行油结果遵:a=浩2,圈b=态1#i车nc笼lu猜de惠<st烫di辨o.阀h>ma俭in轧(){in翻tc;pr绘in待tf填("笋En兴te宗rm齿or糖n箭o鬼r蒙h稻or富o

温馨提示

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

评论

0/150

提交评论