欢迎来到天天文库
浏览记录
ID:51999501
大小:480.00 KB
页数:32页
时间:2020-03-27
《选择结构程序设计-西安交大.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.1关系运算符和关系表达式4.2逻辑运算符和逻辑表达式4.3if语句4.4条件运算符和条件表达式4.5switch语句和goto语句4.6程序举例第4章选择结构程序设计逻辑与:0∧0=00∧1=01∧0=01∧1=1二进制的逻辑运算逻辑或:0∨0=00∨1=11∨0=11∨1=1逻辑非:0=11=0逻辑运算是指对某一给定条件,判断其是否成立的一种运算。运算结果不表示数值的大小,而是表示条件成立与否。引例:求下列函数的值。-1(x<0)y=0(x=0)1(x>0)程序执行时,每输入一个x值,输出对应的y值。在程序中
2、经常需要计算机进行逻辑判断,然后根据逻辑判断的不同结果进行相应的处理。这种根据某种条件的成立与否而采用不同的程序段进行处理的程序结构称为选择结构。有单分支、双分支、多分支选择结构。4.1关系运算符和关系表达式1.关系运算符及其优先次序C语言中的关系运算符有6种:<、<=、>、>=、==(等于)、!=(不等于)关系运算符都是双目运算符,其结合性均为左结合。运算优先次序:(1)6种关系运算符中,前4种、后2种同级,高于后2种例如:x!=y、s-d<=f、a>b+cbd、a==b>c等价于(b3、==c(2)关系运算符的优先级低于算术运算符,高于赋值运算符。算术运算符(高)关系运算符赋值运算符(低)2.关系表达式用关系运算符将两个表达式连接起来的式子。如:(a>b)>(by、s+f>d关系表达式的值是一个逻辑值(真或假),但C语言没有逻辑型数据,关系表达式的真、假是以数值1和0表示。“1”代表“真”,以“0”代表“假”。例:a=3,b=2,c=1则c>b;0(a-b)==1;1b+cb>c;(自左至右)f=0逻辑运算符及其优先次序C语言提供三种逻辑运算符:&&(逻4、辑与)、5、6、(逻辑或)、!(逻辑非)注:“&&”和“7、8、”是“双目(元)运算符”,要求有两个运算量操作数。而“!”是“单目(元)运算符”,只要求有一个运算量。运算规则:a&&ba、b同时为真,a&&b为真;a9、10、ba、b之一为真,a11、12、b为真;!aa为真,!a为假。a为假,!a为真运算优先顺序:(1)!→&&→13、14、(2)&&和15、16、低于关系运算符,!高于算术运算符4.2逻辑运算符和逻辑表达式!(非)(高)算术运算符关系运算符&&和17、18、赋值运算符(低)例:219、20、4-!0值为:“1”‘b’&&0值为:“0”5>3&&8<21、4-!0值为:“0”2.逻辑表达式用逻辑运算符将关系表达式或逻辑值连接起来的式子就是逻辑表达式。逻辑表达式的值为真或假,我们用“非0”代表“真”,用“0”代表“假”。注:有些逻辑运算符可能不被执行:对于a&&b&&c,只有当a≠0,才继续进行右面的运算;对于a22、23、b24、25、c,只有当a=0,才继续进行右面的运算。例:判断某年是否闰年。条件为下面之一,(1)能被4整除,但不能被100整除;(2)能被4整除,又能被400整除。(year%4==0&&year%100!=0)26、27、year%400==01.if语句的三种形式(28、1)if(表达式)语句(单分支)如:if(g>=80)printf(“%d”,g);4.3if语句(3)if(表达式1)语句1(多分支)elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n(2)if(表达式)语句1else语句2(双分支)如:if(x>y)printf(“%d”,x);elseprintf(“%d”,y);如:If(x>=90)y=1;elseif(x>=80)y=2;Elseif(x>=60)y=3;Elsey=0;说明:(1)条件表达式必须29、用圆括号括起来。(2)条件表达式可以逻辑表达式或关系表达式,也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。如:if(b)printf(“%d”,x);(3)else子句不能单独使用,必须配合if语句使用。(4)if和else后均可放置复合语句。例:由小到大输出两个数。#includevoidmain(){floata,b,t;scanf(“%f,%f”,a,b);if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2f”,a,b);}复合语句2.if语句30、的嵌套if()if()语句else语句elseif()语句else语句注意:else总是与最近的未配对的if配对,把内嵌的语句写在{}中不容易出错【例1】编写程序完成:输入两个整数,输出其中的大数。程序:#includevoidmain(){inta,b,max;printf("inputtwonumbers:");scanf("%d%
3、==c(2)关系运算符的优先级低于算术运算符,高于赋值运算符。算术运算符(高)关系运算符赋值运算符(低)2.关系表达式用关系运算符将两个表达式连接起来的式子。如:(a>b)>(by、s+f>d关系表达式的值是一个逻辑值(真或假),但C语言没有逻辑型数据,关系表达式的真、假是以数值1和0表示。“1”代表“真”,以“0”代表“假”。例:a=3,b=2,c=1则c>b;0(a-b)==1;1b+cb>c;(自左至右)f=0逻辑运算符及其优先次序C语言提供三种逻辑运算符:&&(逻
4、辑与)、
5、
6、(逻辑或)、!(逻辑非)注:“&&”和“
7、
8、”是“双目(元)运算符”,要求有两个运算量操作数。而“!”是“单目(元)运算符”,只要求有一个运算量。运算规则:a&&ba、b同时为真,a&&b为真;a
9、
10、ba、b之一为真,a
11、
12、b为真;!aa为真,!a为假。a为假,!a为真运算优先顺序:(1)!→&&→
13、
14、(2)&&和
15、
16、低于关系运算符,!高于算术运算符4.2逻辑运算符和逻辑表达式!(非)(高)算术运算符关系运算符&&和
17、
18、赋值运算符(低)例:2
19、
20、4-!0值为:“1”‘b’&&0值为:“0”5>3&&8<
21、4-!0值为:“0”2.逻辑表达式用逻辑运算符将关系表达式或逻辑值连接起来的式子就是逻辑表达式。逻辑表达式的值为真或假,我们用“非0”代表“真”,用“0”代表“假”。注:有些逻辑运算符可能不被执行:对于a&&b&&c,只有当a≠0,才继续进行右面的运算;对于a
22、
23、b
24、
25、c,只有当a=0,才继续进行右面的运算。例:判断某年是否闰年。条件为下面之一,(1)能被4整除,但不能被100整除;(2)能被4整除,又能被400整除。(year%4==0&&year%100!=0)
26、
27、year%400==01.if语句的三种形式(
28、1)if(表达式)语句(单分支)如:if(g>=80)printf(“%d”,g);4.3if语句(3)if(表达式1)语句1(多分支)elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n(2)if(表达式)语句1else语句2(双分支)如:if(x>y)printf(“%d”,x);elseprintf(“%d”,y);如:If(x>=90)y=1;elseif(x>=80)y=2;Elseif(x>=60)y=3;Elsey=0;说明:(1)条件表达式必须
29、用圆括号括起来。(2)条件表达式可以逻辑表达式或关系表达式,也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。如:if(b)printf(“%d”,x);(3)else子句不能单独使用,必须配合if语句使用。(4)if和else后均可放置复合语句。例:由小到大输出两个数。#includevoidmain(){floata,b,t;scanf(“%f,%f”,a,b);if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2f”,a,b);}复合语句2.if语句
30、的嵌套if()if()语句else语句elseif()语句else语句注意:else总是与最近的未配对的if配对,把内嵌的语句写在{}中不容易出错【例1】编写程序完成:输入两个整数,输出其中的大数。程序:#includevoidmain(){inta,b,max;printf("inputtwonumbers:");scanf("%d%
此文档下载收益归作者所有