欢迎来到天天文库
浏览记录
ID:6383730
大小:639.50 KB
页数:17页
时间:2018-01-12
《04 选择结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言程序设计:04选择结构程序设计04选择结构程序设计教学目标1.掌握关系运算符和关系表达式2.掌握逻辑运算符和逻辑表达式3.掌握用if语句实现选择结构4.掌握用switch语句实现多分支选择结构5.掌握选择结构的嵌套教学重难点1.用if语句实现选择结构2.用switch语句实现多分支选择结构3.选择结构的嵌套4.1关系运算符和关系表达式 关系运算实际上是“比较运算”,将两个值进行比较,判断其比较的结果是否符合给定的条件。4.1.1关系运算符及其优先次序 C语言提供6种关系运算符: ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于) ⑤==(等于) ⑥!
2、=(不等于) 优先次序: ⑴前4种关系运算符优先级别相同,后两种也相同。前4种高于后2种。 ⑵关系运算符的优先级低于算术运算符。 ⑶关系运算符的优先级高于赋值运算符。4.1.2关系表达式 用关系运算符将两个表达式连接起来的式子,称关系表达式。 关系表达式的值是一个逻辑值,即“真”或“假”。例如,关系表达式“5==3”的值为“假”,“5>=0”的值为“真”。C语言没有逻辑型数据,以“1”代表“真”,以“0”代表“假”。例如,a=3,b=2,C=1,则: 关系表达式“a>b”的值为“真”,表达式的值为1; 关系表达式“(a>b)==c”的值为“真”(因为a>b的值为1,等于c的值
3、),表达式的值为1; 关系表达式“b+c4、5、逻辑或 ⑶!逻辑非 “&&”和“6、7、”是“双目(元)运算符”,它要求有两个运算量(操作数),“!”是“一目(元)运算符”。 逻辑运算举例如下: a&&b若a,b为真,则a&&b为真; a8、9、b若a,b之一为真,则a10、11、b为真; !a若a为真,则!a为假。 逻辑运算符优先级: ⑴!→&&→&&,即“!”为三者中最高的; ⑵逻辑运算符中的“&&”12、和“13、14、”低于关系运算符,“!”高于算术运算符。4.2.2逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。 逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值“1”代表“真”,以“0”代表“假”,但在判断一个量是否为“真”时,以“0”代表“假”,以“非0”代表“真”。即将一个“非0”的数值认为“真”。例如: ⑴若a=4,则!a的值为0; ⑵若a=4,b=5,则a&&b的值为1; ⑶a,b值同前,a15、16、b的值为1; ⑷a,b值同前,!a17、18、b的值为1; ⑸4&&019、20、2的值为1。 逻辑运算符两侧的运算对象不但可以是21、“0”和“1”,或者是“0”和“非0”的整数,也可以是任何类型的数据。可以是字符型、实型或指针型等。系统最终以“0”和“非0”来判定它们属于“真”或“假”。 在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例如: ⑴a&&b&&c只有a为真(非0)时,才需要判别b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和c(此时整个表达式已确定为假)。如果a为真,b为假,不判别c。见图4.3。48C语言程序设计:04选择结构程序设计图4.3 逻辑与表达式图4.4 逻辑或表达式 ⑵a22、23、b24、25、c只要26、a为真(非0),就不必判断b和c,只有a为假,才判别b;a和b都为假才判别c。见图4.4。 对“&&”运算符来说,只有a≠0,才继续进行右面的运算。对“27、28、”运算符来说,只有a=0,才继续进行其右面的运算。因此,如果有下面的逻辑表达式:(m=a>b)&&(n=c>d) 当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值为0,因此m=0,而“n=c>d”不被执行,因此n的值不是0而仍保持原值1。4.3if语句 if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。4.3.1if语句的三种形式 C语言提供了三种形式的if语句: 29、 1.if(表达式)语句 执行过程见图4.5(a)。 例如:if(x>y)printf("%d",x); 2.if(表达式)语句1else语句2 执行过程见图4.5(b)。 例如:if(x>y)printf("%d",x);48C语言程序设计:04选择结构程序设计elseprintf("%d",y);图4.5 if语句的三种形式(1、2) 3.if(表达式1)语句1;elseif(表达式2)语句2
4、
5、逻辑或 ⑶!逻辑非 “&&”和“
6、
7、”是“双目(元)运算符”,它要求有两个运算量(操作数),“!”是“一目(元)运算符”。 逻辑运算举例如下: a&&b若a,b为真,则a&&b为真; a
8、
9、b若a,b之一为真,则a
10、
11、b为真; !a若a为真,则!a为假。 逻辑运算符优先级: ⑴!→&&→&&,即“!”为三者中最高的; ⑵逻辑运算符中的“&&”
12、和“
13、
14、”低于关系运算符,“!”高于算术运算符。4.2.2逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。 逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值“1”代表“真”,以“0”代表“假”,但在判断一个量是否为“真”时,以“0”代表“假”,以“非0”代表“真”。即将一个“非0”的数值认为“真”。例如: ⑴若a=4,则!a的值为0; ⑵若a=4,b=5,则a&&b的值为1; ⑶a,b值同前,a
15、
16、b的值为1; ⑷a,b值同前,!a
17、
18、b的值为1; ⑸4&&0
19、
20、2的值为1。 逻辑运算符两侧的运算对象不但可以是
21、“0”和“1”,或者是“0”和“非0”的整数,也可以是任何类型的数据。可以是字符型、实型或指针型等。系统最终以“0”和“非0”来判定它们属于“真”或“假”。 在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例如: ⑴a&&b&&c只有a为真(非0)时,才需要判别b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和c(此时整个表达式已确定为假)。如果a为真,b为假,不判别c。见图4.3。48C语言程序设计:04选择结构程序设计图4.3 逻辑与表达式图4.4 逻辑或表达式 ⑵a
22、
23、b
24、
25、c只要
26、a为真(非0),就不必判断b和c,只有a为假,才判别b;a和b都为假才判别c。见图4.4。 对“&&”运算符来说,只有a≠0,才继续进行右面的运算。对“
27、
28、”运算符来说,只有a=0,才继续进行其右面的运算。因此,如果有下面的逻辑表达式:(m=a>b)&&(n=c>d) 当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值为0,因此m=0,而“n=c>d”不被执行,因此n的值不是0而仍保持原值1。4.3if语句 if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。4.3.1if语句的三种形式 C语言提供了三种形式的if语句:
29、 1.if(表达式)语句 执行过程见图4.5(a)。 例如:if(x>y)printf("%d",x); 2.if(表达式)语句1else语句2 执行过程见图4.5(b)。 例如:if(x>y)printf("%d",x);48C语言程序设计:04选择结构程序设计elseprintf("%d",y);图4.5 if语句的三种形式(1、2) 3.if(表达式1)语句1;elseif(表达式2)语句2
此文档下载收益归作者所有