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

下载本文档

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

文档简介

第4章选择结构程序设计本章要点:(1)关系运算符及其表达式(2)逻辑运算符及其表达式(3)if语句(4)switch语句返回4.1关系运算符及其表达式1.关系运算符C语言中有6种关系运算符,它们的含义和优先级见表4.1。关系运算符的优先级低于算术运算符,高于赋值运算符。2.关系表达式由关系运算符与运算量构成的表达式称为关系表达式。关系表达式用来对两个运算量进行比较,比较的结果是一个逻辑量,即“真”或“假”。若比较的结果成立,则关系表达式的值为“真”,否则为“假”。在C语言中,逻辑值“真”“假”分别用整数1和0表示。返回4.2逻辑运算符及其表达式1.逻辑运算符C语言中有3种逻辑运算符,它们的含义和优先级见表4.2。逻辑运算符的优先级低于关系运算符,高于赋值运算符。2.逻辑表达式用逻辑运算符和运算量构成的表达式称逻辑表达式。运算量可以是算术表达式、关系表达式和逻辑表达式,但通常是关系表达式。如:!(a>b)

10<x&&y<100p==q∣∣x!=y逻辑表达式的结果还是逻辑值,即“真”或“假”,分别用1和0表示。表4.3为逻辑运算的真值表。它表示当a和b的值为不同组合时,各种逻辑运算所得到的值。下一页返回4.2逻辑运算符及其表达式在一个逻辑表达式中可以包含多个逻辑运算和其他各种运算符,这时将按他们的优先级进行运算。如表达式“5>3&&2∣∣8<4-!0”的结果为1.其运算顺序如图4.1所示。由于逻辑运算的特殊性,逻辑表达式求值不一定必须求到底。如:

a&&b&&c只有a为真时才判断b,只有a&&b为真时才判断c,即若a为假,表达式的值已将肯定为假,不必再往下判断了。同样:

a∣∣b∣∣c只要a为真,就不必再继续判断,结果一定为真。上一页返回4.3if语句if语句是用来判定是否满足所给定的条件,根据判定的结果决定要执行的语句。1.两种形式的if语句格式1:if(表达式)语句格式2:if(表达式)语句1else语句2其中:“表达式”一般为关系表达式或逻辑表达式,当然也可以是任何合法的表达式。把表达式的值作为是逻辑值看待,它决定了程序的流向。“语句”处只能是一条语句,当有多个语句时应把它写成复合语句。这两种格式的if语句的执行过程如图4.2(a)和(b)所示。下一页返回4.3if语句2.嵌套的if语句在if语句中的“语句”处又有if语句,则称为if语句的嵌套。一般格式如下:if(表达式1)

if(表达式2)语句1else语句2elseif(表达式3)语句3else语句4如果表达式1成立,再去判断表达式2,才能执行到语句1或语句2;若表达式1不成立,根据表达式3的判断结果,决定执行语句3或语句4.其执行过程如图4.3所示在嵌套的if语句中,从最内层开始,else总是与它上面最近的、未曾配对的if配对。上一页下一页返回4.3if语句3.if-else-if格式

if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……else语句n+1其执行过程是:从前向后逐一检查“表达式”是否成立,若某个表达式成立,则执行相应的语句,并逃过余下的else-if,直接去执行if语句的下一句。若没有任何表达式成立,则执行最后一个else后的语句。最后的else常起着“缺省条件”的作用,如果没有最后的else,则所有表达式都不成立时什么也不做。如图4.4所示。上一页下一页返回4.3if语句4.条件运算符在if语句中,在表达式为“真”和“假”时,且都只执行一个赋值语句给同一个变量赋值时,可以用条件运算符来处理。例如,若有if语句:

if(a>b)max=a;elsemax=b;可以用条件运算符写成条件表达式来处理,结果是一样的:

max=(a>b)?a:b;其中“?:”即为条件运算符,它是唯一的一个三目运算符。由条件运算符构成的表达式称为“条件表达式”,其语法格式为:表达式1?表达式2:表达式3“表达式1”一般是关系表达式或逻辑表达式,是把它作为“条件”来使用的。当条件成立时,条件表达式的值为“表达式2”的值,否则为“表达式3”的值。条件运算符的优先级仅仅高于赋值运算符和逗号运算符,低于所有其他运算符。上一页返回4.4switch语句虽然用嵌套if以及if-else-if都能实现多种情况的判断选择,但是随着嵌套层数的增多和if结构内语句的增多,会大大地降低程序的可读性,并且容易出现逻辑混乱。因此,在C语言中可以使用switch语句来专门处理多情况的判断选择。Switch语句在C语言中也称为开关语句,其语法格式为:

switch(表达式)

{case常量1:语句组1case常量2:语句组2……case常量n:语句组n[default:语句组n+1]}下一页返回4.4switch语句其执行过程是:首先计算“表达式”的值,然后与case后面的“常量”逐个比较是否相等。如果表达式值与某个常量相等,就获得了一个“入口”,即表示从此处开始执行所有“语句组”直到switch最后面的右大括号“}”,即“出口”。若表达式的值与所有case后面的常量都不相等,就执行default后面的语句组。如图4.5所示。(1)switch后面的“表达式”可以是字符型、整型或枚举型,但不可以是实型,若为常量则无分支可言。(2)“常量”必须是不同的,但无大小顺序要求。(3)“语句组”可以是一条语句,也可以是多条语句,且不必用大括号括起来。breakt语句是中断语句,其作用就是中断switch的执行。如果在switch的每个语句组后面都加上break,则改进后的switch语句的执行过程如图4.6所示。上一页返回表4.1关系运算符及其表达式返回表4.2逻辑运算符及其表达式返回表4.3逻辑运算符真值表

温馨提示

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

评论

0/150

提交评论