C语言教程第四章-选择结构PPT课件_第1页
C语言教程第四章-选择结构PPT课件_第2页
C语言教程第四章-选择结构PPT课件_第3页
C语言教程第四章-选择结构PPT课件_第4页
C语言教程第四章-选择结构PPT课件_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

.,1,第四章选择结构程序设计,2,4.1关系运算符和关系表达式,关系运算符及其优先级,=优先级相同高于=,!=说明:关系运算符优先级低于算术运算符高于赋值运算符关系表达式用关系运算符将两个表达式连接起来的式子关系表达式的值是一个逻辑值,即“真”或“假”,而在C语言中没有专门的逻辑值,用1代表“真”,用0代表“假”,3,4.2逻辑运算符与逻辑表达式,逻辑运算符及其优先级!(逻辑非)高于,if(表达式1)if(表达式2)语句1;else语句2;,13,注意:当if语句中出现多个“if”与“else”的时候,要特别注意它们之间的匹配关系,否则就可能导致程序逻辑错误。,“else”与“if”的匹配原则是“就近一致原则”,即“else”总是与它前面最近的“if”相匹配。,例有一个函数,编一程序,输入一个x值,输出y值。,14,上例中的程序段有四个,请判断哪个是正确的?,程序1:if(x=0)if(x0)y=1;elsey=0;elsey=-1;,程序3:y=-1;if(x!=0)if(x0)y=1;elsey=0;,程序4:y=0;if(x=0)if(x0)y=1;elsey=-1;,15,4.4条件运算符,格式:表达式?表达式表达式功能:先求解表达式,若为非(真)则求解表达式,此时表达式的值就作为整个条件表达式的值。若表达式的值为(假),则求解表达式,表达式的值就是整个条件表达式的值使用场合:若在if语句中,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值时,可以用一个条件运算符来处理。,16,说明:条件运算符优先级高于赋值运算符,低于关系运算符和算术运算符。条件运算符的结合方向为“自右至左”。“表达式2”和“表达式3”不仅可以是数值表达式,还可以是赋值表达式或函数表达式。条件表达式中,表达式的类型可以与表达式和表达式的类型不同。,例:if(ab)max=a;elsemax=b;当ab时将a的值赋给max,当ab时将b的值赋给max,可以看到无论ab是否满足,都是向同一个变量赋值,可以用下面的条件运算符来处理:max=(ab)?a:b;,17,4.5switch语句,1、语句形式:,switch(表达式)case常量1:语句1;case常量2:语句2;case常量3:语句3;.case常量n:语句n;default:语句n+1;,根据表达式的不同值,选择不同的程序分支,又称开关语句。,数值型或字符型,常量表达式的值必须互不相同,否则执行时将出现矛盾,即同一个开关值,将对应多种执行方案。,千万不能接(;)号,18,2、语句执行流程:,指语句的最后一条是否为break,简单语句或复合语句,19,例假设用0、1、2.6分别表示星期日、星期一.星期六。现输入一个数字,输出对应的星期几的英文单词。如果输入3,输出“Wednesday”。,程序运行情况如下:3WednesdayThursdayFridaySaturdayerror,#includestdio.hvoidmain()intn;scanf(%d,20,在“switch”语句中,“case常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch语句,因此会继续执行所有后面语句的情况。,为此,语言提供了一种break语句,其功能是可以跳出它所在的switch语句。,21,将上例4修改如下:,#includestdio.hvoidmain()intn;scanf(%d,程序运行情况如下:3Wednesday,22,3、说明,多个case语句可以共用一组执行语句。,switch(grade)caseA:caseB:caseC:printf(grade=60n);break;default:printf(grade60);,各case和default子句的先后顺序可以变动,而不会影响程序执行结果。,23,default语句可以省略不用。,case与其后面的常量表达式间至少有一个空格。,switch语句可以嵌套,break语句只跳出它所在的switch语句。,24,例企业发放的奖金根据利润提成。从键盘输入当月利润,求应发放奖金总数?,25,利润xx=1010x2020x4040x6060x100100x,(int)x/10,常量0,11,22,3,44,5,66,7,8,9,1010以上,用这种方法转换后,n出现了在不同区域有重复数字的情况。解决的方法有很多,其中一种是可以采用当x为10的整数倍时,将计算出的n值减1。,使用switch解题的关键,通过分析找到表达式,将问题分成几种情况。,.,26,1.写出下面程序的运行结果main()intx=1,y=0,a=0,b=0;switch(x)case1:switch(y)case0:a+;break;case1:b+;break;case2:a+;b+;break;case3:a+;b+;print

温馨提示

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

最新文档

评论

0/150

提交评论