《C语言程序设计与数据结构》课件第04章_第1页
《C语言程序设计与数据结构》课件第04章_第2页
《C语言程序设计与数据结构》课件第04章_第3页
《C语言程序设计与数据结构》课件第04章_第4页
《C语言程序设计与数据结构》课件第04章_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计与数据结构,第四章选择结构,学习重点lif语句及switch语句的执行流程;lif语句及switch语句的灵活运用。,C语言程序设计与数据结构,4.1关系运算和逻辑运算,C语言编译系统在给出逻辑运算结果时,会得出两个逻辑值(“真”和“假”)中的一个。以数值1代表“真”,以数值0代表“假”。但在判决一个量是否为真时,以非代表“真”,以0代表“假”。如已知x值为5,则x8不成立,表达式x8的值为“假”.4.1.1关系运算符和关系表达式4.1.1.1关系运算符及其结合性关系运算是逻辑运算中比较简单的一种。所谓关系运算实际上是“比较运算”,将两个数进行比较,判断比较的结果是否符合指定的条件。比较两个量的运算符称为关系运算符。语言提供了以下6种关系运算符:1)大于4)=大于或等于5)=等于6)!=不等于注意:由两个字符组成的运算符之间不能有空格,如:=不能写成=。关系运算符都是双目运算符,其结合性均为自左至右。在六个关系运算符中,前4个(,=)的优先级相同,并高于后两个(=和!=,=和!=的优先级相同)。关系运算符、算术运算符和赋值运算符的优先级次序从高到低分别是:算术运算符、关系运算符、赋值运算符。,C语言程序设计与数据结构,4.1.1.2关系表达式用关系运算符将两个表达式连接起来的式子称为关系表达式。关系表达式的一般形式为:表达式关系运算符表达式说明:关系运算符两边的两个表达式自身可以是C语言中的任意合法表达式(如算术表达式,赋值表达式,也可以是关系表达式和马上就要学到的逻辑表达式)。例如:a+bc-d、x3/2、a+1(bc)、a!=(c=d)等。关系表达式的值是逻辑值“真”和“假”,用整数值1和0表示。如:50的值为“真”,即为1。(a=3)(b=5)由于35不成立,故其值为假,即为0。,C语言程序设计与数据结构,【例4.1】main()charc=k;inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf(%d,%dn,a+5=k+1);printf(%d,%dn,1j5,x-5.25b)?a:b;执行该语句的语义是:如ab为真,则把a赋予max,否则把b赋予max。使用条件表达式时,还应注意以下几点:1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此max=(ab)?a:b可以去掉括号而写为max=ab?a:b2)条件运算符?和:是一对运算符,不能分开单独使用。3)条件运算符的结合方向是自右至左。例如:ab?a:cd?c:d应理解为ab?a:(cd?c:d)这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。,C语言程序设计与数据结构,【例4.8】用条件表达式对上例重新编程,输出两个数中的大数。main()inta,b,max;printf(ninputtwonumbers:);scanf(%d%d,C语言程序设计与数据结构,4.3switch语句,4.3.1switch语句及执行过程语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式)case常量表达式1:语句1;case常量表达式2:语句2;case常量表达式n:语句n;default:语句n+1;其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。,C语言程序设计与数据结构,【例4.9】main()inta;printf(inputintegernumber:);scanf(%d,本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch语句,所以出现了继续执行所有后面case语句的情况。这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,语言还提供了一种break语句。,C语言程序设计与数据结构,4.3.2break语句在switch中的使用语言提供了一种break语句,来跳出switch语句,break语句只有关键字break,没有参数。修改上述例题的程序,在每一case语句之后增加break语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。【例4.10】main()inta;printf(inputintegernumber:);scanf(%d,在使用switch语句时还应注意以下几点:1)在cas

温馨提示

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

评论

0/150

提交评论