资源描述:
《C语言程序设计 教学课件 作者 王煜 等 第4章 选择结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章选择结构程序设计4.1关系运算、逻辑运算与条件4.2if语句4.3switch语句4.4选择结构程序设计举例4.1关系运算、逻辑运算与条件运算C语言中的逻辑值当一个关系表达式或者逻辑表达式的运算结果成立时,值为真,用1表示;当运算结果不成立时,值为假,用0表示。关系运算符与关系表达式关系运算符与表达式关系运算符大小判断:>(大于)、>=(大于等于)、<(小于)、<=(小于等于)。相等判断:==(等于)、!=(不等于)。注意,关系运算符“>=、<=、==、!=”在书写时,不要用空格将其分开,否则会产生语法错误。4.1关系运算、逻辑运算与条件运算关系表达式用关系运算符将两个
2、运算对象连接起来的表达式称为关系表达式。关系表达式的一般形式为:运算对象关系运算符运算对象例如:a+b>=9.7,x==y,'a'+3>='c',-u*3!=z+1;4.1关系运算、逻辑运算与条件运算关系运算符的优先级与结合性4.1关系运算、逻辑运算与条件运算【例4.1】分析下列程序。main(){intx=9,y=8,z=7;inta,b,c;a=x>y>z;b=xy>=z;c=x==y;printf("x=%dy=%dz=%d",x,y,z);printf("a=%db=%dc=%d",a,b,c);}程序的输出结果是x=8y=8z=7a=0b=0c=14.
3、1关系运算、逻辑运算与条件运算逻辑运算符与逻辑表达式逻辑运算符与表达式逻辑表达式是指由逻辑运算符连接若干个表达式所构成的表达式。C语言中提供三种逻辑运算符:&&(逻辑与),
4、
5、(逻辑或),!(逻辑非)。逻辑运算符的运算规则是:&&:当且仅当两个运算量的值均为非0时,其运算结果值为1,其余情况均为0;
6、
7、:当且仅当两个运算量的值均为0时,其运算结果值为0,其余情况均为1;!:当运算量的值为0时,运算结果为1,当运算量的值为1时,运算结果为0。4.1关系运算、逻辑运算与条件运算例如:①表示“三门课成绩均为及格”的逻辑表达式为:(math>=60)&&(phys>=60)&&(en
8、gl>=60)②表示“三门课成绩中至少有一门不及格”的逻辑表达式为:(math<60)
9、
10、(phys<60)
11、
12、(engl<60)③判别某一年year是否闰年,闰年符合以下条件:能被4整除但不能被100整除,或者能被4整除又能被100整除。可用逻辑表达式表示为:((year%4==0)&&(year%100!=0))
13、
14、(year%400==0)逻辑运算符的优先级与结合性逻辑运算符的优先级与结合性比较复杂,在三个逻辑运算符之间,逻辑非(!)优先级最高,逻辑与(&&)次之,逻辑或(
15、
16、)最低。4.1关系运算、逻辑运算与条件运算运算符的优先级和结合性4.1关系运算、逻辑运算与条件
17、运算逻辑表达式的求解特点对于运算符“&&”来说,只有左边表达式的值为真时,才计算右边表达式的值。而对于运算符“‖”来说,只有左边表达式的值为假时,才计算右边表达式的值。main(){intx=1,y=2,z=3;inta,b;a=(x=8)&&(y=8)&&(z=8);printf("x=%d,y=%d,z=%d,a=%d",x,y,z,a);x=1;y=2;z=3;a=(x=0)&&(y=8)&&(z=8);printf("x=%d,y=%d,z=%d,a=%d",x,y,z,a);x=1;y=2;z=3;b=(x=0)
18、
19、(y=0)
20、
21、(z=6);printf("
22、x=%d,y=%d,z=%d,b=%d",x,y,z,b);x=1;y=2;z=3;b=(x=6)
23、
24、(y=6)
25、
26、(z=6);printf("x=%d,y=%d,z=%d,b=%d",x,y,z,b);}4.1关系运算、逻辑运算与条件运算程序的运行结果为:x=8,y=8,z=8,a=1x=0,y=2,z=3,a=0x=0,y=0,z=6,b=1x=6,y=2,z=3,b=14.1关系运算、逻辑运算与条件运算条件运算符与条件表达式条件运算符与条件表达式条件运算符是C语言中唯一的三目运算符,条件运算符为“?:”,它有三个运算对象。条件表达式的一般形式为:表达式1?表达式
27、2:表达式3条件表达式的运算规则为:先求解表达式1的值,若其为真(非0),则求解表达式2的值,且整个条件表达式的值等于表达式2的值;若表达式1为假(0),则求解表达式3的值,且整个条件表达式的值等于表达式3的值。4.1关系运算、逻辑运算与条件运算main(){charc;printf("input:");scanf("%c",&c);c=(c>='A'&&c<='Z')?(c+32):c;printf("output:%c",c);}条件运算符的优先级条件运算符的优先级高于赋值运算符,但低于算术运算