第4章选择结构.ppt
《第4章选择结构.ppt》由会员分享,可在线阅读,更多相关《第4章选择结构.ppt(43页珍藏版)》请在三一文库上搜索。
1、第4章 选择结构,本章要点: 4.1 关系运算和逻辑运算 4.2 if语句和用if语句构成的选择结构 4.3 条件表达式构成的选择结构 4.5 语句标号和goto语句,4.1 关系运算和逻辑运算,4.1.1 C语言中的逻辑值 C语言中,参与逻辑运算的量为非零值或整数零,非零值和整数零分别表示运算量为“真”或“假”。逻辑运算的结果值,即逻辑表达式的值应该是一个逻辑值“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。,4.1.2 关系运算符和关系表达式 关系运算实际上就是“比较运算”,将两个数进行
2、比较,判断比较的结果是否符合指定的条件。 1关系运算符 关于关系运算符的说明: (1)表4-1中前4种运算符(、=)的优先级别相同,后两种也相同。前4种优先级别高于后两种。如,“”优先级别高于“!=”。 (2)关系运算符与算术运算符、赋值运算符的优先级关系如下: 算术运算符(高)关系运算符(中)赋值运算符(低) 即:算术运算符优先级别高于关系运算符,关系运算符优先级别又高于赋值运算符。 (3)关系运算符的结合方向是“自左向右”。,C语言有六种关系运算符,如表4-1所示。 表4.1 C语言中的关系运算符,2关系表达式及关系表达式的值 用关系运算符将两个表达式(算术表达式、关系表达式、逻辑表达式、
3、赋值表达式、字符表达式等)连接起来的式子,称关系表达式。例如,a=b,a= =c等。 在C语言中,关系表达式的结果值为1或0。当关系表达式成立时,其结果值为1,否则,其值为0。若a=10,b=6,表达式a=b为“真“,其值为1。 当关系运算符两边的值类型不一致时,系统将自动进行转换。转换规则与双目运算中的类型转换规则相同。,关系运算示例:试求x=531的值。 分析:x=531相当于: x=(53)1 =11 =0 故x的值为0。 关系表达式主要用于选择结构中的条件判断。 重点提示:表示“等于”关系的运算符“= =”和“不等于”关系的运算符“!=”与数学中的表示方法不同。在使用它们时请予以注意,
4、以免写错关系运算符而导致错误的结果。例如,欲判断x是否等于0,如果写成:x=0就不是判断x是否等于0的含义了,而成了把0赋值给变量x。正确的写法应为:x= =0。,4.1.3 逻辑运算符和逻辑表达式 1C语言中的逻辑运算符 关系表达式只适于描述单一的条件,对于较复杂的复合条件就需要将若干个关系表达式连接起来才能描述,如描述“x大于0且不等于2”,就需要将两个关系表达式x0和x!=2连接起来:x0&x!=2。其中“&”是C语言中的逻辑运算符。C语言提供了三种逻辑运算符,如表4.2所示。,表4.2 C语言中的逻辑运算符,关于逻辑运算符的说明: (1)逻辑运算符的优先次序如下: !(高)&(中)|(
5、低) (2)逻辑运算符具有自左向右的结合性 (3)逻辑运算符与赋值运算符、关系运算符、算术运算符的优先次序如下:(由高到低) !(逻辑非)算术运算关系运算&(逻辑与)|(逻辑或)赋值运算,例如: a=b) & (xy) 可以写为:a=b&xy (a= =b)|(x= =y) 可以写为:a= =b|x= =y (!a)|(a=b) 可以写为:!a|a=b 2逻辑表达式和逻辑表达式的值 用逻辑运算符将关系表达式或逻辑值连接起来的式子称逻辑表达式。一个逻辑表达式中可以包含多个逻辑运算符,如xy&a=b-!c 参与逻辑运算的量为非零值或整数零,非零值和整数零分别表示运算量为“真”或“假”。逻辑运算的结
6、果值,即逻辑表达式的值应该是一个逻辑值“真”或“假”,即为“1”或“0”。,表4.3为逻辑运算的运算规则表。用它表示当a和b的值为不同组合时,各种逻辑运算所得到的值。,以下是关于逻辑运算的几点说明: (1)参与逻辑运算的量不但可以是0和1,或者是0和非零的整数,也可以是任何类型的数据,如字符型、实型或指针型等。但最终以0和非0来判定它们属于“真”或“假”。 (2)在逻辑表达式求解中,并不是所有逻辑运算符都需要执行,有时只需执行一部分运算符就可得出逻辑表达式的最后结果。例如x&y&z,只有x为真时才需要判断y的真假,若x为假,则立即得出整个表达式为假。 (3)逻辑表达式的运用场合与关系表达式完全
7、相同,也是用于流程控制语句中的条件描述。只不过,关系表达式描述的是单一的条件,逻辑表达式描述的是复合的条件。,(4)在处理一个复杂表达式时,对于表达式中不同位置上出现的数值,应区分哪些是作为数值运算或关系运算的对象,哪些作为逻辑运算的对象。例如求下列表达式的值: 8=5&2|6=5,在关系运算符=两侧的8和5作为数值参加关系运算,8=5的值为1。 再进行1&2|65-!0运算。自左至右扫描求解,&两侧的1和2作为逻辑运算对象,因为参加运算的皆为非0,故结果为1。 接下来进行1|65-!0运算。6的左侧为|运算符,右侧为运算符,根据优先级别,应先进行的运算。即先进行65-!0运算。现在5的左侧为
8、运算符,右侧为-运算符,而-优先于,因此,应先进行5-!0的运算。又由于!的优先级别最高,故先进行!0的运算,得结果1。, 然后进行5-1运算。得结果为4。 下面再进行64运算。得结果为0。 最后进行1|0运算。得到1。 故表达式的值为1。 重点提示:在逻辑表达式求解中,并不是所有逻辑运算符都需要执行,有时只需执行一部分运算符就可得出逻辑表达式的最后结果。,4.2 if语句和用if语句构成的选择结构 4.2.1 if语句 if语句是选择结构的一种形式,又称为条件分支语句。它的流程控制方式是:根据给定的条件进行判定,由判定的结果(真或假)决定执行给出的两种操作之一。C语言中提供了三种形式的if语
9、句:不含else的if语句、ifelse语句和ifelseif语句。 1不含else的if语句,(1)语句形式如下: if(表达式) 语句 圆括号中的表达式一般是关系表达式或逻辑表达式,用于描述选择结构的条件,但也可以是其他任意的数值类型表达式,包括整型、实型、字符型等。如果在if子句中需要多个语句,则应该使用大括号“”把一组语句组成复合语句。 (2)执行过程 首先计算if后面圆括号中的表达式的值,若为非0值,则执行语句1,然后脱离本选择结构,继续执行if语句的下一个语句;否则不执行语句1,直接转去执行if语句的下一个语句。,图4-1 if语句程序流程图,图4.2 if-else语句执行过程,
10、2if-else语句 (1)语法形式如下: if(表达式) 语句1; else 语句2; 语句1称为if子句,语句2称为else子句,这些子句只允许是一条语句,若需要多条语句时,则应该使用“”将这些语句括起来组成复合语句。另外要注意,else不是一条独立的语句,它只是if语句的一部分,因此在程序中else必须与if配对。 (2)执行过程 首先计算圆括号内的表达式值,若为非0值,则执行语句1,然后脱离本选择结构,继续执行if语句的下一个语句;否则执行语句2,然后脱离本选择结构,继续执行if语句的下一个语句 。,3if-else-if语句 (1)语法形式如下: if(表达式1) 语句1; else
11、 if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式n-1) 语句n-1; else 语句n;,(2)执行过程 若表达式1为真,执行语句1,否则进行下一步判断;若表达式2为真,执行语句2,否则进行下一步判断;最后所有表达式都为假时,执行语句n。if-else-if语句的执行过程如图4-3所示。,重点提示:使用ifelseif语句时,请注意各个分支结构的条件一定要按照某种顺序书写。这样做不仅使程序条理清晰,而且能使条件书写简捷,不易出错。,4.2.2 嵌套的if语句 在if语句中又包含一个或多个if语句称为if语句的嵌套。以下是C语言中ifelse语句的二重
12、嵌套的三种形式。 (1)在if子句中嵌套具有else子句的if语句,如图4.4(a)所示 (2)在if子句中嵌套不含else子句的if语句,如图4.4(b)所示 (3)在else子句中嵌套if语句,如图4.4(c)所示。,图4.4 嵌套的if语句结构,如果把嵌套写成如下形式: if(表达式1) if(表达式2) 语句1; else 语句2; 程序设计者把else与第一个if书写在同一列,试图以此表示它们的匹配的。但是,根据if和else配对规则,else却是与第二个if配对(因为离它最近)。由此可见,C语言不是以书写格式来分隔语句的,而是由逻辑关系决定的。 当if和else的数目不等时,为了保
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选择 结构
链接地址:https://www.31doc.com/p-2550380.html