四章选择结构程序设计ppt课件.ppt
《四章选择结构程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《四章选择结构程序设计ppt课件.ppt(32页珍藏版)》请在三一文库上搜索。
1、第四章 逻辑运算和判断选择控制,C关系运算符和关系表达式,逻辑运算符和逻辑表达式,if 语句,switch 语句,实例,第四章 逻辑运算和判断选择控制,本章要点: 理解关系运算及其表达式 理解逻辑运算及其表达式 掌握分支语句if的使用 掌握多分支语句 switch的使用 掌握选择结构程序设计,第四章 逻辑运算和判断选取控制 4.1关系运算符和关系表达式 一、关系运算符及优先级 , = , , = ( 优先级相同 ) 高 = , != ( 优先级相同 ) 低 优先级低于算术运算符,高于赋值运算符 。 结合性:从左至右,例: c a + b 等价于 c (a + b) a b != c 等价于 (
2、a b) != c a = b c 等价于 a = ( b c ),二、关系表达式 格式: (表达式 1) 关系运算符 (表达式 2) 例如: ( a = 3) (b = 5) a b + c 注意: 1. 表达式可以是算术表达式; 关系表达式; 逻辑表达式 ;赋值表达式; 字符表达式等。 2. 关系表达式的值为逻辑值,即 “真” 或 “假”。 用 “1” 表示 “真”, “ 0 ” 表示 “假”。 如: int a = 3 , b = 2 , c = 1 ; 则: a b 表达式的 值为 1 (a b ) = = c 表达式的 值为 1 f = a b c f 的值为 0,4.2逻辑运算符和
3、逻辑表达式 一、逻辑运算符及优先级 ! , & , | , ( ! 高于 & 高于 | ) 1. ! 高于算术运算符, 高于关系运算符, 高于&,高于| 赋值运算符 2. 结合性: 从左至右 例如: (a b) & (cd) 等价于 ab& cd !a&b |x y&c 等价于 (!a)&b | ( x y)&c (!a = b)|(x =y) 等价于 !a = b | x = y,二、逻辑表达式 如: ( m = a b ) & (n = c d ) C 语言中逻辑表达式的值为 “1” 或 “0” 。 在判断 一个数值量是否为 “真” 时, 以 “0” 代表“假” ,以 “非 0” 代表“真
4、” 。,注意: (1) 逻辑表达式的值只能为“1”或“0”。 在表达式中不同位置上出现数值,应正确区分 那些是作为数值运算或是关系运算,那些是 逻辑运算对象。,(2) 在逻辑表达式的求解中,并非所有的逻辑运算 符都被执行。,1.如: a = 4 则 !a 为 0 a = 4 , b= 5 则 a&b 的值为 1 4&0|2 则表达式的值为 1,注意: (1) 如: 5 3 最后 1|0 结果为 1。,注意: (2) 例如: a 则: (m=a b) & (n=cd) 表达式中n仍为1,注意: (1) 如: 5 3 最后 1|0 结果为 1。,例如,示例,a = 4 则 !a 为 0 a = 4
5、 , b= 5 则 a&b 的值为 1 4&0|2 则表达式的值为 1,示例,(2) 例如: a 则: (m=a b) & (n=cd) 表达式中n仍为1,例如,示例,例如:,二、逻辑表达式 如: ( m = a b ) & (n = c d ) C 语言中逻辑表达式的值为 “1” 或 “0” 。 在判断 一个数值量是否为 “真” 时, 以 “0” 代表“假” ,以 “非 0” 代表“真” 。,注意: (1) 逻辑表达式的值只能为“1”或“0”。 在表达式中不同位置上出现数值,应正确区分 那些是作为数值运算或是关系运算,那些是 逻辑运算对象。,(2) 在逻辑表达式的求解中,并非所有的逻辑运算
6、符都被执行。,1.如: a = 4 则 !a 为 0 a = 4 , b= 5 则 a&b 的值为 1 4&0|2 则表达式的值为 1,注意: (1) 如: 5 3 最后 1|0 结果为 1。,注意: (2) 例如: a 则: (m=a b) & (n=cd) 表达式中n仍为1,注意: (1) 如: 5 3 最后 1|0 结果为 1。,例如,示例,a = 4 则 !a 为 0 a = 4 , b= 5 则 a&b 的值为 1 4&0|2 则表达式的值为 1,示例,(2) 例如: a 则: (m=a b) & (n=cd) 表达式中n仍为1,例如,示例,例如:,例如:,4.3 if 语句 一、i
7、f 语句的形式 1. if (表达式 ) 语句 例如: if ( x y ) printf ( “ %d ” , x ) ;,表达式,语句,基本型,1. 举例 if ( x y ) printf ( “ %d ” , x ) ;,if 语句实例 从键盘输入一个整数,如果大于60,就输出这个数。 main( ) int x, y; y = 60; printf(“Please input x:”); scanf(“%d”, ,实例,例如:,4.3 if 语句 一、if 语句的形式 1. if (表达式 ) 语句 例如: if ( x y ) printf ( “ %d ” , x ) ;,表达式
8、,语句,基本型,1. 举例 if ( x y ) printf ( “ %d ” , x ) ;,if 语句实例 从键盘输入一个整数,如果大于60,就输出这个数。 main( ) int x, y; y = 60; printf(“Please input x:”); scanf(“%d”, ,实例,例如:,4.3 if 语句 一、if 语句的形式 2. if (表达式 ) 语句 1 else 语句 2 例如: if ( x y ) printf ( “ %d ”,x ) ; else printf ( “ %d ” , y ) ;,表达式,语句 2,语句 1,标准型,2. 例如: if (
9、x y ) printf ( “ %d ”,x ) ; else printf ( “ %d ” , y ) ;,if 语句实例 从键盘输入两个整数,输出较大的一个数。 main( ) int x, y; printf(“Please input x, y:”); scanf(“%d,%d”, ,实例,例如:,4.3 if 语句 一、if 语句的形式 2. if (表达式 ) 语句 1 else 语句 2 例如: if ( x y ) printf ( “ %d ”,x ) ; else printf ( “ %d ” , y ) ;,表达式,语句 2,语句 1,标准型,2. 例如: if (
10、 x y ) printf ( “ %d ”,x ) ; else printf ( “ %d ” , y ) ;,if 语句实例 从键盘输入两个整数,输出较大的一个数。 main( ) int x, y; printf(“Please input x, y:”); scanf(“%d,%d”, ,实例,3. if (表达式 1 ) 语句 1 else if (表达式 2 ) 语句 2 else if (表达式 3 ) 语句 3 else if (表达式m) 语句 m else 语句 n,流程图,switch 多分支结构示意图,重点,说明: 表达式:可以是各种类型的表达式或任意的 数值类型(
11、整型、实型,字符型,指针型数据) else 不能单独使用,它是 if 的一部分。 if 和else后的语句为复合语句时,应加 号。,表达式类型,反例,正例,如: if ( a= = b,正例 如: if ( a b) a += 2 ; b = 1 ; else a = 1 ; b += 2 ; ,反例 if ( a b) a += 2 ; b = 1 ; else a = 1 ; b += 2 ; /*b += 2 语句总要执行 */,正例 if ( a b) a += 2 ; b = 1 ; /* 复合语句必须加 号 */ else a = 1 ; b += 2 ; ,正例,if 语句反例
12、if ( a b) a += 2 ; b = 1 ; else a = 1 ; b += 2 ; /* b += 2 语句总要执行 */,实例,if语句的表达式 可以是各种类型的表达式 或任意的 数值类型 如: if ( a= = b,正例,说明: 表达式:可以是各种类型的表达式或任意的 数值类型( 整型、实型,字符型,指针型数据) else 不能单独使用,它是 if 的一部分。 if 和else后的语句为复合语句时,应加 号。,表达式类型,反例,正例,如: if ( a= = b,正例 如: if ( a b) a += 2 ; b = 1 ; else a = 1 ; b += 2 ; ,
13、反例 if ( a b) a += 2 ; b = 1 ; else a = 1 ; b += 2 ; /*b += 2 语句总要执行 */,正例 if ( a b) a += 2 ; b = 1 ; /* 复合语句必须加 号 */ else a = 1 ; b += 2 ; ,正例,if 语句反例 if ( a b) a += 2 ; b = 1 ; else a = 1 ; b += 2 ; /* b += 2 语句总要执行 */,实例,if语句的表达式 可以是各种类型的表达式 或任意的 数值类型 如: if ( a= = b,正例,例 5.1 将二个数进行升序排序 main ( ) fl
14、oat a , b , t ; scanf ( “ %f , %f ”, 运行结果: 3.6 , 3.2 3.20 , 3.60,例 5.1 将二个数进行升序排序,例 5.2 将三个数进行升序排序,例 5.2 将三个数进行升序排序 main ( ) float a , b , c , t ; scanf ( “ %f,%f ,%f ” , ,二个数升序淅程序,三个数升序淅程序,将二个数进行升序排序 main ( ) float a , b , t ; scanf ( “ %f , %f ”, 运行结果: 3.6 , 3.2 3.20 , 3.60,例 5.1,示例,将三个数进行升序排序 mai
15、n ( ) float a , b , c , t ; scanf(“%f,%f ,%f ”, ,例 5.2,示例,例 5.1 将二个数进行升序排序 main ( ) float a , b , t ; scanf ( “ %f , %f ”, 运行结果: 3.6 , 3.2 3.20 , 3.60,例 5.1 将二个数进行升序排序,例 5.2 将三个数进行升序排序,例 5.2 将三个数进行升序排序 main ( ) float a , b , c , t ; scanf ( “ %f,%f ,%f ” , ,二个数升序淅程序,三个数升序淅程序,将二个数进行升序排序 main ( ) floa
16、t a , b , t ; scanf ( “ %f , %f ”, 运行结果: 3.6 , 3.2 3.20 , 3.60,例 5.1,示例,用if语句和goto语句构成循环, main( ) int i,sum=0; i=1; loop: if(i=100) sum=sum+i; i+; goto loop; printf(“%d”,sum); ,例 5.2,示例,二、if 语句的嵌套 if语句中又包含一个或多个if语句叫 if语句的嵌套。 一般形式: if (表达式1) else,内嵌 if 语句,内嵌 if 语句,if (表达式2) 语句 1 else 语句 2,if (表达式3) 语
17、句 3 else 语句 4,注意 : if和else的配对关系:一个else总是和它上面离 它最近的且没有与其它 else 配对的 if 配对。 如if和else的数目不等,应分辩else 与哪个if 配对,必要时可通过加 号来确定配对关系。,例如: if ( ) if ( ) 语句1 else 语句2,例 5.3 (p95) 程序1. main ( ) int x , y ; scanf ( “%d” , ,输入 x,x 0,真,假,x = 0,真,假,y = 1,y = 0,y = 1,输出 y,程序2. 将上面程序的 if 语句改为:,main ( ) int x , y ; scanf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选择 结构 程序设计 ppt 课件
链接地址:https://www.31doc.com/p-3196597.html