资源描述:
《第4章 C语言 选择结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章选择结构程序设计4.1关系运算符和关系表达式4.2逻辑运算符和逻辑表达式4.3if语句4.4switch语句4.5程序举例4.1关系运算符和关系表达式4.1.1关系运算符4.1.2关系表达式4.1.1关系运算符种类不相等判断:>>=<<=相等判断:==(等于)!=(不等于)4.1.1关系运算符优先级别低于算术运算符高于赋值运算符结合性“左结合性”例:c>a+ba>b!=ca==bcc>(a+b)(a>b)!=ca==(bc)<<=>>===!=优先级(高)优先级(低)4.1.2关系表达式关系表达式用关系运算符接起来的式子,称关系表达式。关系表达式的值“
2、真”(用1表示):关系成立“假”(用0表示):关系不成立【例】inta=3,b=2,c=1,d,f;a>b(a>b)==cb+cbf=a>b>c//表达式值为1//表达式值为1//表达式值为0//d=1//f=0注意:不要把两个字符的次序写颠倒。>=,!=,<=写成=>,=!,=<不要在两个字符之间加空格。>=,!=,<=,==写成>=,!=,<=,==不要把相等运算符误写成赋值运算符。==写成=【例4.1】分析程序。#includemain(){inta=0,b=1;if(a=b)printf("aequaltob");elseprintf("ano
3、tequaltob");}(a==b)4.2逻辑运算符和逻辑表达式4.2.1逻辑运算符4.2.2逻辑表达式4.2.1逻辑运算符逻辑运算符的类型逻辑与:&&逻辑或:
4、
5、逻辑非:!逻辑值:“真”“假”逻辑值对象真假操作数非00逻辑表达式101、逻辑与:&&运算规则:a&&b//若a,b为真,则a&&b为真。真值表为:aba&&b00非000非0非0非000012、逻辑或:
6、
7、运算规则:a
8、
9、b//若a,b之一为真,则a
10、
11、b为真。真值表为:aba
12、
13、b00非000非0非0非001113、逻辑非:!运算规则:!a//若a为真,则!a为假真值表为:a!a0非0104.2.1逻辑运算符优先级
14、:结合性:!:右结合&&:左结合
15、
16、:左结合例:a<=x&&x<=ba>b&&x>ya==b
17、
18、x==y!a
19、
20、a>b(a<=x)&&(x<=b)(a>b)&&(x>y)(a==b)
21、
22、(x==y)(!a)
23、
24、(a>b)4.2.2逻辑表达式逻辑表达式用逻辑运算符将表达式连接起来的式子。逻辑表达式的值“真”:1“假”:0例如:设a=4,b=5;!aa&&ba
25、
26、b!a
27、
28、b4&&0
29、
30、201111说明:逻辑表达式求解时,并非所有的逻辑运算符都被执行。a&&b&&ca
31、
32、b
33、
34、c//只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值//只要a为真,就不必判断b和c;只有a为假,才
35、判断b;a和b都为假,才判断c【例4.2】分析程序。#includemain(){inta,b,c,d,m,n;a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d);printf("m=%d,n=%d",m,n);}运行结果:m=0,n=1【例4.3】分析程序。#includemain(){inta,b,c,d;a=0;b=1;c=2;d=a++
36、
37、b++
38、
39、--c;printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);}运算结果:a=1,b=2,c=2,d=1//d=(a++)
40、
41、(b++)
42、
43、
44、(--c);4.3if语句if语句是根据判定的结果决定执行的结构。4.3if语句4.3.1if语句的3种形式4.3.2if语句的嵌套4.3.3条件运算符4.3.1if语句的3种形式单分支结构执行过程:例如:if(x>y)printf(“%d”,x);表达式语句YNif(表达式)语句;【例4.4】输入两个实数,按数值由小到大的顺序输出这两个数。分析:设变量a,b,分别存放:较小的数、较大的数;输入两个数放到a,b中,如果a>b,则交换两数。顺序输出a,b。流程图:a>bt=a;a=b;b=t;YNfloata,b,t;scanf("%f%f",&a,&b);if(a>b){t=a;a
45、=b;b=t;}printf("%4.2f,%5.2f",a,b);a>bt=a;a=b;b=t;YN【例4.4】输入两个实数,按数值由小到大的顺序输出这两个数。【例4.5】输入三个数a,b,c,要求按由小到大的顺序输出。分析:设变量a,b,c,分别存放:最小的数、中间数、最大的数;输入三个数,顺序放到a、b、c中进行两两比较:if(a>b)a和b交换;//a是a,b中的小者if(a>c)a和c交换;//a是三者中最小者if(b>c)b和c