程序设计基础(选择结构)_第1页
程序设计基础(选择结构)_第2页
程序设计基础(选择结构)_第3页
程序设计基础(选择结构)_第4页
程序设计基础(选择结构)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础,第三章选择结构程序设计,关系和逻辑表达式,3.1,if语句和switch语句,3.2,选择结构程序设计,3.3,大家能否记得多年前那本畅销世界的书谁动了我的奶酪?,生动的阐述了“变是唯一的不变”这一生活真谛。周遭的世界,纷繁的生活,真实的问题,变化无处不在。而这些变化自然带来了选择。是选择放弃、继续还是变通呢?也许每个人都有自己的答案。正如变化,选择也无处不在,悄无声息。应对变化,从容选择才是生存之道。只要我们能够先于变化,未雨绸缪,就能做到从容应对。计算机在帮我们搭理一切的时候,选择自然也成为了它必不可少的部分。今天,我们为大家带来了C语言世界中的选择,以及为了选择所必须的逻辑

2、和关系,我们来一起编织和体会“充满变化但尽在掌握”的选择之道。,这是什么结构?,“树上有10只鸟,开枪打死一只,还剩几只?”如果挂在树枝上,则剩1只。如果掉下来,一只也不剩如果有关在笼子里的鸟?如果使用的是无声手枪?如果树上的鸟是聋子?如果一枪打死了两只。让计算机解决问题必须考虑所有的可能选择结构根据判断结果决定程序的流程,3.1关系和逻辑表达式,3.1.1关系运算符和关系表达式,关系运算符种类:=!=结合方向:自左向右优先级别:,例ca+b/c(a+b)ab!=c/(ab)!=ca=bc/a=(bc),例inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc,/表达式值1,

3、/表达式值1,/表达式值0,/d=1,/f=0,算术运算符,赋值运算符,关系表达式:用关系运算符将两个数值或数值表达式连接起来的式子,关系表达式的值:是逻辑值“真”或“假”,用1和0表示,比较运算符号中间没空格符号不能写反与数学中的运算符区别等于与赋值运算符的区别,问题:abc表示“b在a和c”之间的意思吗?(ab)c假设a=3,b=2,c=1(32)1110可以发现在数学上正确的表达式在C语言的逻辑上并不总是正确,如何解决?C语言的逻辑运算符,3.1关系和逻辑表达式,3.1关系和逻辑表达式,3.1.2逻辑运算符和逻辑表达式,从上表中可以看出b=5;!aa,双分支选择结构面临的选择是:在两个不

4、同的操作中选择其中的一个执行if-else语句,3.2if语句和switch语句,例:if(xy)max=x;elsemax=y;,多分支选择结构面临2种以上选择(需连续执行多个条件判断)时,3.2if语句和switch语句,多分支选择结构级联式if语句:else-if,3.2if语句和switch语句,例:if(salary1000)index=0.4;elseif(salary800)index=0.3;elseif(salary600)index=0.2;elseif(salary400)index=0.1;elseindex=0;,3.2if语句和switch语句,如:if(a=b,i

5、f后面表达式可以是任何数值表达式,因为关系表达式和逻辑表达式的值为0和1,if(x)if(x!=0)if(!x)if(x=0),说明:,例:求解两个数的最大值(if-else语句实现),3.2if语句和switch语句,3.2if语句和switch语句,3.2.2条件运算符和条件表达式,3.2if语句和switch语句,3.2.2条件运算符和条件表达式,由于条件语句在语法上只允许每一个条件分支中带一条语句,在实际应用中,条件语句中需要进行的操作往往需要多条语句,将多条语句用括起来,构成复合语句,3.2if语句和switch语句,3.2.2条件运算符和条件表达式,在分支中使用的好处:向if和el

6、se字句中添加语句时不易出错,保证程序逻辑的正确性,最好把语句用括起来,哪怕只有一条语句,3.2if语句和switch语句,3.2.2条件运算符和条件表达式,代码结构更清晰,Else无法与内的if语句进行配对,3.2if语句和switch语句,3.2.3switch语句,3.2if语句和switch语句,3.2if语句和switch语句,switch语句(开关分支语句),3.2.3一般形式:,switch(表达式)case常量1:语句1case常量2:语句2case常量3:语句3.case常量n:语句ndefault:语句n+1,执行过程:,括起来的内容是可选项,3.2if语句和switch语

7、句,switch后括号内的表达式和case后面的常量表达式必须为整型(包括字符型),且二者类型应一致确定性每一个case常量(不能是区间)必须互不相同互异性多个case标号出现次序不影响执行结果无序性可以没有default语句,此时如果没有匹配的常量,跳到下一个语句执行case后可包含多个可执行语句,且不必加case标号只起标记作用,用来标记一个位置,作为程序执行的切入口,在执行完一个case标号后,如果没有break语句,则顺序执行此标号后的所有语句多个case可共用一组执行语句case和default的次序可以交换,不影响程序运行结果,但从执行效率的角度,一般将发生频率高的case常量放在

8、前面,如:caseA:caseB:caseC:printf(“score60n”);break;.,说明:,3.2if语句和switch语句,3.2.3switch语句(开关分支语句),switch必须和break配合使用,才能形成真正意义上的多分支选择控制结构。default提高程序的健壮性,3.2if语句和switch语句,例switch(score)case5:printf(“Verygood!”);case4:printf(“Good!”);case3:printf(“Pass!”);case2:printf(“Fail!”);default:printf(“dataerror!”);,运行结果:score为5时,输出:Verygood!Good!Pass!Fail!dataerror!,例子,3.3选择结构程序设计,例子:根据输入字母输出字符串,/*ch4_5.c*/#includemain()intc;printf(Entermornorhorother:);c=getchar()

温馨提示

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

评论

0/150

提交评论